可以使用所谓的嵌入式查询而不是方法调用来表达

Ral*_*ton 6 linq

给出以下代码:

string[]  colors = {"red","green","blue","red","green","blue"};
var distinctColors = (from c in colors select c).Distinct();
distinctColors.Dump();
Run Code Online (Sandbox Code Playgroud)

是否可以将调用折叠.Distinct()为嵌入式查询语法?

比如int T-SQL

select distinct color from TableofColors
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

C#的查询表达式语法不包括"distinct".然而,VB确实 - 例如,来自VB的Distinct子句MSDN文档:

// VB
Dim customerOrders = From cust In customers, ord In orders _
                     Where cust.CustomerID = ord.CustomerID _
                     Select cust.CompanyName, ord.OrderDate _
                     Distinct
Run Code Online (Sandbox Code Playgroud)

C#等价物必须以Distinct()点表示法显式调用.

但是,您的示例仍然可以简化:

string[]  colors = {"red","green","blue","red","green","blue"};
var distinctColors = colors.Distinct();
distinctColors.Dump();
Run Code Online (Sandbox Code Playgroud)

不要以为你必须使用查询表达式来使用LINQ :)