Dự án hiện tại này là một bằng chứng về khái niệm cho một dự án lớn hơn. Tôi có hai "bảng" (được trình bày dưới dạng danh sách bên dưới), CatList
và DogList
, có cấu trúc cột giống hệt nhau. Tôi muốn có thể Concat
hoặc Union
cả hai và thực hiện truy vấn trên tập hợp kết quả bằng cách sử dụng LINQ
. Tôi đã nói rằng bằng cách thực hiện interfaces
tôi sẽ có thể đạt được những kết quả này.Bảng Concat/Union trong LINQ
Dưới đây là những gì tôi có cho đến nay:
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; }
}
tôi có thể truy cập vào bất kỳ của các thành viên dữ liệu của bất kỳ của các đối tượng được tạo ra của tôi sử dụng một cái gì đó giống như System.Console.Write(Dog1.name);
, vì vậy tôi nghĩ tôi thực hiện các giao diện là đúng. Những gì cần phải được thay đổi trong tuyên bố LINQ của tôi để có hiệu quả Concat/Liên minh danh sách của tôi.
Tôi khá mới với C#
và lập trình hướng đối tượng nói chung, vì vậy hãy đáp ứng câu trả lời của bạn cho phù hợp với trình độ kiến thức của tôi.
Cảm ơn
EDIT Tôi xin lỗi, như tôi đã quên để bao gồm các thông báo lỗi tôi nhận được trong mã hiện tại của tôi.
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>'
Xin lỗi, quên bao gồm lỗi. Câu hỏi là cố định. – Jeff