linq distinct并选择新查询

ale*_*vdi 8 c# linq windows linq-to-sql winforms

我有一个问题

var QP = (from a in QProductAllInfo select new { a.Id, a.Title, a.FullTitle}).Distinct();
Run Code Online (Sandbox Code Playgroud)

结果是:

  • 1伊万诺夫伊万
  • 1伊万诺夫伊万
  • 2彼得罗夫彼得
  • 3西多罗夫伊万
  • 3西多罗夫伊万

我需要结果:

  • 1伊万诺夫伊万
  • 2彼得罗夫彼得
  • 3西多罗夫伊万

San*_*eep 8

假设不同的ID总是被认为是不同的,你可以试试这个.

我可能会用两个查询来写它.这样,它易于调试,更易读.你可以用MoreLinq.

DistinctBy

下载

var temp = from a in QProductAllInfo select new { a.Id, a.Title, a.FullTitle}.ToList();

var result = temp.DistinctBy(i => i.Id);
Run Code Online (Sandbox Code Playgroud)

你也可以使用

Var result = temp.GroupBy(x => x.Id).Select(y => y.First());
Run Code Online (Sandbox Code Playgroud)