c#现有list1和list2,根据code和name两个字段将list1中包含list2的数据排除
时间: 2024-09-09 13:04:13 浏览: 36
C# 实现导出数据到Excel
在C#中,如果你有一个`List<T>`类型的集合`list1`,其中每个元素都包含`code`和`name`字段,并且你想创建一个新的列表`list3`,它只包含那些不在`list2`中存在的元素,你可以通过 LINQ(Language Integrated Query)来实现。假设`T`是具有`code`和`name`属性的对象类型。
```csharp
using System.Linq;
// 假设 T 是这样的类
public class Item
{
public int Code { get; set; }
public string Name { get; set; }
}
List<Item> list1 = ...; // 要处理的列表1
List<Item> list2 = ...; // 列表2,需要排除
// 使用 Except() 方法从 list1 中排除 list2 的元素
List<Item> list3 = list1.Except(list2, item => new { item.Code, item.Name });
// 或者直接使用 Where() 和 NotEqual() 来过滤
list3 = list1.Where(item => !list2.Any(otherItem => otherItem.Code == item.Code && otherItem.Name == item.Name));
```
以上代码首先会创建一个新列表`list3`,其中包含`list1`中所有不在`list2`中的`Item`实例。`Except()`方法用于找出两个序列中第一个不在第二个序列中的元素,而`Where()`结合`NotEqual()`则可以达到同样的效果。
阅读全文