前言
如果想通过某个字段来排除两个列表中的数据,您可以使用 LINQ 的
Where
方法结合 Lambda 表达式来进行筛选。以下是示例代码:
示例
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
// 原始列表
List<Item> list1 = new List<Item>
{
new Item { Id = 1, Name = "Apple" },
new Item { Id = 2, Name = "Banana" },
new Item { Id = 3, Name = "Orange" },
new Item { Id = 4, Name = "Mango" }
};
// 要排除的列表
List<Item> list2 = new List<Item>
{
new Item { Id = 1, Name = "Peach" },
new Item { Id = 3, Name = "Orange" }
};
// 使用 LINQ 通过字段排除数据
List<Item> result = list1.Where(item1 => !list2.Any(item2 => item2.Name == item1.Name)).ToList();
// 输出结果
foreach (Item item in result)
{
Console.WriteLine("Id: {0}, Name: {1}", item.Id, item.Name);
}
}
}
// 自定义的 Item 类
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
}
在上述代码中,我们使用了 Where
方法和 Any
方法来筛选出在 list2
中不存在的数据。通过在 Lambda 表达式中比较字段的值,我们可以排除两个列表中具有相同字段的数据