Questo progetto attuale è più una prova di concetto per un progetto più ampio. Ho due "tabelle" (rappresentate come liste di seguito), CatList
e DogList
, che hanno la stessa struttura di colonne. Desidero essere in grado di Concat
o Union
i due ed eseguire una query sul set risultante utilizzando LINQ
. Mi è stato detto che implementando interfaces
sarei stato in grado di raggiungere questi risultati.Tabelle concat/union in LINQ
Ecco quello che ho finora:
static void Main(string[] args)
{
System.Console.Write("Hello World\n");
Dog Dog1 = new Dog { name = "A", age = 1 };
Dog Dog2 = new Dog { name = "B", age = 2 };
Cat Cat1 = new Cat { name = "C", age = 3 };
Cat Cat2 = new Cat { name = "D", age = 4 };
List<Dog> DogList = new List<Dog>();
List<Cat> CatList = new List<Cat>();
DogList.Add(Dog1);
DogList.Add(Dog2);
CatList.Add(Cat1);
CatList.Add(Cat2);
var result = DogList
.Concat(CatList);
}
}
public interface iAnimal
{
string name { get; set; }
int age { get; set; }
}
public class Dog :iAnimal
{
public string name { get; set; }
public int age { get; set; }
}
public class Cat:iAnimal
{
public string name { get; set; }
public int age { get; set; }
}
posso accedere a qualsiasi dei membri di dati di qualsiasi dei miei oggetti creati utilizzando qualcosa di simile System.Console.Write(Dog1.name);
, quindi penso che la mia implementazione di interfacce è corretta. Cosa deve essere cambiato nella mia dichiarazione LINQ per poter concat/unionare le mie liste in modo efficace.
Sono piuttosto nuovo a C#
e programmazione orientata agli oggetti in generale, quindi si prega di soddisfare le vostre risposte per soddisfare il mio livello di conoscenza.
Grazie
EDIT mi scuso, come ho dimenticato di includere il messaggio di errore ottengo nel mio codice corrente.
Error 1 'System.Collections.Generic.List<InterfaceTest.Dog>' does not contain a definition for 'Concat' and the best extension method overload 'System.Linq.ParallelEnumerable.Concat<TSource>(System.Linq.ParallelQuery<TSource>, System.Collections.Generic.IEnumerable<TSource>)' has some invalid arguments
Error 2 Instance argument: cannot convert from 'System.Collections.Generic.List<InterfaceTest.Dog>' to 'System.Linq.ParallelQuery<InterfaceTest.Cat>'
Spiacente, ho dimenticato di includere errori. La domanda è fissa. – Jeff