c# import List(T) from Library 到 main
c# import List(T) from Library to main
我在导入将所有数据添加到列表的 List(T) 方法时遇到问题。
我需要在 main 中调用它并用数据填充我的列表,但总是会出现这样的错误...
错误 CS0029 无法将类型 'System.Collections.Generic.List<mylib.myclass>' 隐式转换为
'mylib.myclass'
有更好的方法,或者我可以编辑此代码以成功导入吗?
- CLASS 图书馆代码
public static EstatisticasEquipas InserirEstatisticasEquipas(List<EstatisticasEquipas> listEstatisticaEquipas, List<Equipa> listEquipas, List<Jogos> listJogos)
{
List<EstatisticasEquipas> listEstatisticaEquipa = new List<EstatisticasEquipas>();
foreach (Equipa equipa in listEquipas)
{
foreach (Jogos jogo in listJogos)
{
// DO SOMETHING...
}
}
Return listEstatisticaEquipas
- 程序主要代码
static void Main(string[] args)
{
List<Jogos> listJogos = new List<Jogos>();
listJogos = InserirJogos();
List<Equipa> listEquipas = new List<Equipa>();
listEquipas = InserirEquipas(listJogos);
List<EstatisticasEquipas> listEstatisticaEquipas = new List<EstatisticasEquipas>();
listEstatisticaEquipas = EstatisticasEquipas.InserirEstatisticasEquipas(listEstatisticaEquipas, listEquipas, listJogos);
正如 Broots 已经提到的 InserirEstatisticasEquipas
的函数签名要求您 return EstatisticasEquipas
的单个实例,但您尝试 return 的变量实际上是List<EstatisticasEquipas>
.
你想如何解决它取决于你想达到什么目的,但你的主程序中的代码表明你实际上想要一个列表,所以你可以简单地改变 return 的类型功能如下:
public static List<EstatisticasEquipas> InserirEstatisticasEquipas(List<EstatisticasEquipas> listEstatisticaEquipas, List<Equipa> listEquipas, List<Jogos> listJogos)
始终确保您的函数 return 是您在其签名中设置的类型。
大多数 IDE 会帮助您发现类似的错误,如果您还没有使用过,我建议您下载 Visual Studio 代码或其他一些 IDE 并安装语言C# 的扩展。
非常感谢,它成功了...我是 C# 的新手,但现在给我这个错误:
“抛出异常 - System.NullReferenceException:'Object reference not set to an instance of an object.'”
-CLASS 图书馆代码
public static void TotalPontos()
{
listEstatisticaEquipas.Sort((x, y) => y.Pontos.CompareTo(x.Pontos));
foreach (EstatisticasEquipas estEquipa in listEstatisticaEquipas)
{
Console.WriteLine(estEquipa.Equipa.Nome + " - " + estEquipa.Pontos);
}
}
我在导入将所有数据添加到列表的 List(T) 方法时遇到问题。 我需要在 main 中调用它并用数据填充我的列表,但总是会出现这样的错误...
错误 CS0029 无法将类型 'System.Collections.Generic.List<mylib.myclass>' 隐式转换为 'mylib.myclass'
有更好的方法,或者我可以编辑此代码以成功导入吗?
- CLASS 图书馆代码
public static EstatisticasEquipas InserirEstatisticasEquipas(List<EstatisticasEquipas> listEstatisticaEquipas, List<Equipa> listEquipas, List<Jogos> listJogos)
{
List<EstatisticasEquipas> listEstatisticaEquipa = new List<EstatisticasEquipas>();
foreach (Equipa equipa in listEquipas)
{
foreach (Jogos jogo in listJogos)
{
// DO SOMETHING...
}
}
Return listEstatisticaEquipas
- 程序主要代码
static void Main(string[] args)
{
List<Jogos> listJogos = new List<Jogos>();
listJogos = InserirJogos();
List<Equipa> listEquipas = new List<Equipa>();
listEquipas = InserirEquipas(listJogos);
List<EstatisticasEquipas> listEstatisticaEquipas = new List<EstatisticasEquipas>();
listEstatisticaEquipas = EstatisticasEquipas.InserirEstatisticasEquipas(listEstatisticaEquipas, listEquipas, listJogos);
正如 Broots 已经提到的 InserirEstatisticasEquipas
的函数签名要求您 return EstatisticasEquipas
的单个实例,但您尝试 return 的变量实际上是List<EstatisticasEquipas>
.
你想如何解决它取决于你想达到什么目的,但你的主程序中的代码表明你实际上想要一个列表,所以你可以简单地改变 return 的类型功能如下:
public static List<EstatisticasEquipas> InserirEstatisticasEquipas(List<EstatisticasEquipas> listEstatisticaEquipas, List<Equipa> listEquipas, List<Jogos> listJogos)
始终确保您的函数 return 是您在其签名中设置的类型。
大多数 IDE 会帮助您发现类似的错误,如果您还没有使用过,我建议您下载 Visual Studio 代码或其他一些 IDE 并安装语言C# 的扩展。
非常感谢,它成功了...我是 C# 的新手,但现在给我这个错误:
“抛出异常 - System.NullReferenceException:'Object reference not set to an instance of an object.'”
-CLASS 图书馆代码
public static void TotalPontos()
{
listEstatisticaEquipas.Sort((x, y) => y.Pontos.CompareTo(x.Pontos));
foreach (EstatisticasEquipas estEquipa in listEstatisticaEquipas)
{
Console.WriteLine(estEquipa.Equipa.Nome + " - " + estEquipa.Pontos);
}
}