给出以下代码:
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)
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 :)