📜  c# linq 仅从列表中选择唯一值 - C# (1)

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

C# LINQ 仅从列表中选择唯一值

在 C# 编程中,使用 LINQ 可以大大简化代码,特别是在处理集合数据时。在某些情况下,我们可能只需要从一个列表中选择其唯一值,这时使用 LINQ 可以轻松完成此任务。

选择唯一值

首先,在 C# 中,我们通常使用 List 类型来存储集合数据。要从列表中选择唯一值,我们可以使用以下代码:

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

这段代码创建了一个包含整数的列表,并使用 LINQ 的 Distinct() 方法选择该列表中的唯一值。Distinct() 方法将返回一个 IEnumerable,其中包含列表中的唯一值。

指定比较器

在某些情况下,我们可能需要指定一个比较器来确定两个值是否相等。我们可以使用 Distinct() 方法的重载版本,该版本允许我们传递一个实现了 IEqualityComparer 接口的比较器对象。以下是一个示例:

List<string> names = new List<string>() { "Tom", "Jerry", "tom", "Tim", "jerry" };
var uniqueNames = names.Distinct(StringComparer.OrdinalIgnoreCase);

在这个示例中,我们创建了一个字符串列表,并使用 Distinct() 方法选择该列表中的唯一值。我们还传递了一个比较器对象,该对象使用 OrdinalIgnoreCase 比较规则来确定两个字符串值是否相等。

结论

使用 LINQ 的 Distinct() 方法可以轻松选择列表中唯一的值,不需要编写复杂的代码。我们还可以指定一个比较器来确定唯一值的条件。这使得 C# 编程更加简单和优雅。