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'

有更好的方法,或者我可以编辑此代码以成功导入吗?

 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);
            }
        }