📜  C# .NET Core linq Distinct - C# (1)

📅  最后修改于: 2023-12-03 14:59:39.719000             🧑  作者: Mango

C# .NET Core LINQ Distinct

在现代 .NET Core 中,LINQ 是一个非常强大的工具,它可以帮助程序员轻松地在一个特定数据集中查询数据。其中,Distinct 方法是一个非常有用的 LINQ 方法,它可以筛选掉数据集中的重复项,只留下不同的数据项。本文将介绍如何使用 C# .NET Core 中的 Distinct 方法。

何时使用 Distinct 方法

在很多情况下,我们会从数据库或其他数据源中获取一个包含重复项的数据集。如果我们想要在这个数据集中查询不同的数据项,那么就可以使用 Distinct 方法来去除重复项。举个例子,我们有一个字符串列表,其中可能包含重复的字符串:

List<string> names = new List<string> { "Alice", "Bob", "Charlie", "Alice", "Dave" };

如果我们想要提取这个列表中不同的字符串,那么就可以使用 Distinct 方法:

IEnumerable<string> uniqueNames = names.Distinct();

这样,uniqueNames 就会包含不同的字符串列表,即 "Alice"、"Bob"、"Charlie" 和 "Dave"。

Distinct 方法的使用

在上面的例子中,我们使用了 Distinct 方法来去除重复项。Distinct 方法的用法非常简单,只需要在 LINQ 查询中使用它即可。例如,在上面的例子中,我们使用以下语句来查询不同的字符串:

IEnumerable<string> uniqueNames = names.Distinct();

可以看到,我们直接在 names 变量上调用 Distinct 方法,并将结果存储在 uniqueNames 变量中。

需要注意的是,Distinct 方法是一个延迟执行的方法,它将不同的元素保存在内部数据结构中,并在需要时返回它们。因此,我们可以在查询中使用其他 LINQ 方法,例如 Where 和 Select。

以下是示例代码,使用 Distinct 和 Where 对一个整数列表进行筛选:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 1, 3, 5 };
IEnumerable<int> uniqueNumbers = numbers.Where(n => n > 2).Distinct();

这里,我们首先使用 Where 方法过滤掉数字列表中小于等于 2 的数字,然后使用 Distinct 方法筛选掉重复数字,最终得到一个包含不同数字的列表。

总结

通过本文,我们了解了如何使用 C# .NET Core 中的 Distinct 方法,以及它的基本用法和工作原理。Distinct 方法可以帮助我们轻松地从一个包含重复项的数据集中提取不同的数据项。当我们需要对数据集进行去重操作时,一定要记得使用 Distinct 方法。