c# - 为什么 LINQ 不包含 `distinct` 关键字?

标签 c# linq distinct keyword

注意:在您继续阅读或提供答案之前,我知道 Enumerable.Distinct,我问的是该方法的特定语言支持,而不是方法本身。

我一直想知道为什么在 C# LINQ 关键字集中没有 distinct 关键字,这样我就可以这样写:

var items = distinct from x in y
            select x;

var items = from x in y
            select distinct x;

有人知道为什么没有包含它或者为什么包含它是个坏主意吗?我觉得很麻烦,我必须包装查询才能调用 Distinct(); distinct 关键字会感觉更自然。

注意:我知道 Distinct 方法有重写以在需要时提供比较器,但是使用默认比较器的关键字会很棒。我什至可以想象一个 distinct by 关键字组合,以便可以内联查询提供比较运算符。

最佳答案

在VB中,其实

Dim l = From x In {1, 2, 3, 2, 4, 2} Distinct Select x

我不怀疑有一些积极的决定反对 C# 的 distinct,它只是尚未实现。

关于c# - 为什么 LINQ 不包含 `distinct` 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4167236/

相关文章:

c# - LINQ:一起使用 AssociateWith 和 Distinct

mysql - 从具有包含相似数据的多列的表中选择唯一值

sql-server - 使用带参数的 DISTINCT 时 select 语句性能下降

c# - 在特定领域不同

mysql 匹配一列上的重复项,仅在另一列上不同

c# - 使用 Windows API 从富文本控件检索文本的正确方法是什么?

c# - 从另一个文件 C# 调用另一个类的方法

c# - MEF - 导出和导入通用类型

c# - 如何使 if 语句显示基于当前时间的 xml 属性

c# - 用于对集合列表进行排序的 Lambda 表达式