如何查找两个列表之间的差集 (LINQ) (C#)
此示例演示如何使用 LINQ 对两个字符串列表进行比较,并输出那些位于 names1.txt 中但不在 names2.txt 中的行。
创建数据文件
- 按照如何合并和比较字符串集合 (LINQ) (C#) 中的说明,将 names1.txt 和 names2.txt 复制到解决方案文件夹中。
示例
class CompareLists
{
static void Main()
{
// Create the IEnumerable data sources.
string[] names1 = System.IO.File.ReadAllLines(@"../../../names1.txt");
string[] names2 = System.IO.File.ReadAllLines(@"../../../names2.txt");
// Create the query. Note that method syntax must be used here.
IEnumerable<string> differenceQuery =
names1.Except(names2);
// Execute the query.
Console.WriteLine("The following lines are in names1.txt but not names2.txt");
foreach (string s in differenceQuery)
Console.WriteLine(s);
// Keep the console window open until the user presses a key.
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}
}
/* Output:
The following lines are in names1.txt but not names2.txt
Potra, Cristina
Noriega, Fabricio
Aw, Kam Foo
Toyoshima, Tim
Guy, Wey Yuan
Garcia, Debra
*/
C# 中某些类型的查询操作(例如 Except、Distinct、Union 和 Concat)只能用基于方法的语法表示。
编译代码
使用 System.Linq 和 System.IO 命名空间的 using
指令创建 C# 控制台应用程序项目。