有没有办法在LINQ查询语法中使用Distinct?

Aar*_*ide 52 c# linq

有没有办法重写:

var tbl = ds.TABLES;
var q = from c in tbl
        select c.TABLE_TYPE;
string s = "";
foreach (var item in q.Distinct())
{
    s += "[" + item + "]";
}        
MessageBox.Show(s);
Run Code Online (Sandbox Code Playgroud)

那么Distinct()调用是在LINQ查询中?

Ree*_*sey 58

Distinct()语言集成查询语法中没有方法语法.你可以做的最接近的是移动当前的电话:

var q = (from c in tbl
         select c.TABLE_TYPE).Distinct();
Run Code Online (Sandbox Code Playgroud)

  • 一个额外的信息; 上面的查询将在使用sql时创建以下sql`tlect distinct c.TABLE_TYPE from tbl c`,所以不要担心性能问题. (9认同)

The*_*eze 53

DistinctLINQ中的扩展方法没有等效的查询语法.

有关原因的更多信息,请参见http://blogs.msdn.com/b/charlie/archive/2006/11/19/linq-farm-group-and-distinct.aspx.


小智 13

(from c in tbl select c.TABLE_TYPE).Distinct();
Run Code Online (Sandbox Code Playgroud)