LINQ基础之Join和UNION子句
1. Join子句
Join子句用于将两个数据集合并为一个新的数据集。Join子句需要一个内部键和外部键,用于在两个数据集之间建立关联。
1.1 内部键和外部键
内部键和外部键是Join子句建立关联的基础。内部键是第一个数据集中用于建立关联的字段或属性,而外部键是第二个数据集中用于建立关联的字段或属性。这两个键必须具有相同的数据类型。
1.2 Join子句的语法
var joinResult = from item1 in list1
join item2 in list2
on item1.Key equals item2.Key
select new { item1.Key, item1.Value, item2.OtherValue };
说明:
list1
和list2
表示要合并的两个数据集。item1
和item2
分别是第一个数据集和第二个数据集中的元素。Key
和OtherValue
分别是第一个数据集和第二个数据集中用于建立关联的字段或属性。select
子句用于指定合并后的结果,new
后面的花括号表示合并后数据的结构。
1.3 示例1
var students = new List<Student> {
new Student { Id = 1, Name = "Tom" },
new Student { Id = 2, Name = "John" },
new Student { Id = 3, Name = "Mary" }
};
var scores = new List<Score> {
new Score { Id = 1, Math = 90, English = 80 },
new Score { Id = 2, Math = 85, English = 95 }
};
var joinResult = from student in students
join score in scores
on student.Id equals score.Id
select new { student.Name, score.Math, score.English };
说明:
Student
和Score
分别是两个数据集的类型。Id
是用于建立关联的字段。select
子句用于指定输出的结果,new
后面的花括号表示输出结果的结构。joinResult
的数据结构为Name
、Math
和English
。
2. Union子句
Union子句用于将两个数据集合并为一个新的数据集,同时去除重复项。Union子句不需要关联键。
2.1 Union子句的语法
var unionResult = list1.Union(list2);
说明:
list1
和list2
表示要合并的两个数据集。
2.2 示例2
var list1 = new List<int> { 1, 2, 3 };
var list2 = new List<int> { 2, 3, 4 };
var unionResult = list1.Union(list2);
说明:
unionResult
为1, 2, 3, 4
。
结语
Join和Union是LINQ中比较常用的子句,可以很好地实现对数据集的合并和去重。注意使用时需要注意两个数据集的数据类型和关联方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:LINQ基础之Join和UNION子句 - Python技术站