这个当前的项目更多地是一个大型项目的概念验证。我有两个“表格”(表示如下列表),CatList
和DogList
,它们具有相同的列结构。我希望能够Concat
或Union
这两个并使用LINQ
对结果集执行查询。我被告知通过执行interfaces
我将能够实现这些结果。LINQ中的Concat/Union表格
这是我到目前为止有:
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; }
}
我可以访问任何的任何使用类似System.Console.Write(Dog1.name);
我创建的对象的数据成员的,所以我觉得我实现的接口是正确的。为了有效地Concat /联合我的列表,需要在LINQ语句中更改哪些内容。
我对C#
和面向对象的编程一般都比较陌生,所以请迎合您的答案以适应我的知识水平。
感谢
编辑 我很抱歉,我忘了包括错误消息我在当前的代码获得。
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>'
对不起,忘记了包含错误。问题是固定的。 – Jeff