linq 两实体类 取交集
时间: 2023-08-09 12:02:21 浏览: 84
在LINQ中,要取两个实体类的交集,我们可以使用`Intersect`方法。
假设我们有两个实体类`ClassA`和`ClassB`,每个类都有一个属性`Id`,我们需要对这两个类的`Id`进行比较,得到它们的交集。
首先,我们需要创建两个实体类`ClassA`和`ClassB`,并给它们赋值`Id`属性:
```
class ClassA
{
public int Id { get; set; }
}
class ClassB
{
public int Id { get; set; }
}
List<ClassA> listA = new List<ClassA>();
listA.Add(new ClassA { Id = 1 });
listA.Add(new ClassA { Id = 2 });
listA.Add(new ClassA { Id = 3 });
List<ClassB> listB = new List<ClassB>();
listB.Add(new ClassB { Id = 2 });
listB.Add(new ClassB { Id = 3 });
listB.Add(new ClassB { Id = 4 });
```
然后,我们可以使用LINQ查询语法或方法语法,对两个列表进行交集操作:
使用查询语法:
```
var intersection = (from a in listA
join b in listB on a.Id equals b.Id
select a).ToList();
```
使用方法语法:
```
var intersection = listA.Join(listB, a => a.Id, b => b.Id, (a, b) => a).ToList();
```
最后,我们可以将结果打印出来:
```
foreach (var item in intersection)
{
Console.WriteLine(item.Id);
}
```
输出结果会是:
```
2
3
```
以上就是使用LINQ取两个实体类的交集的方法。
阅读全文