Search code examples
c#listdlldllimportn-tier-architecture

c# import List(T) from Library to main


im having problems with importing a List(T) method that add all the data to a List. I need to call it in main and full my list with the data, but always get error like this...

Error CS0029 Cannot implicitly convert type 'System.Collections.Generic.List<mylib.myclass>' to 'mylib.myclass'

There is a better way to do it or can i edit this code to success import?

  • CLASS LIBRARY CODE
 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
  • PROGAM MAIN CODE
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);

Solution

  • As Broots already mentioned the function signature for InserirEstatisticasEquipas requires that you return a single instance of EstatisticasEquipas, but the variable that you attempt to return is actually a List<EstatisticasEquipas>.

    How you want to solve it depends on what you're trying to achieve, but the code in your main program indicates that you actually want a list, so you can simply change the return type of the function like so:

    public static List<EstatisticasEquipas> InserirEstatisticasEquipas(List<EstatisticasEquipas> listEstatisticaEquipas, List<Equipa> listEquipas, List<Jogos> listJogos)
    

    Always make sure that your function returns the type that you set in its signature.

    Most IDE's will help you find errors like that, if you're not already using one I suggest downloading Visual Studio Code or some other IDE and installing the language extension for C#.