sql order by - LINQ : Distinct and Orderby



我正在尝试使用LINQ(到EF)来获取一个DISTINCT 列表,然后对其进行排序。我找到的所有示例都根据 DISTINCT 值对结果进行排序。但我想在不同的领域对其进行排序。

示例:包含 2 个字段(画布大小和画布长度)的表格;

var sizes = (from s in ent.competitors                         
             select s.canvasSize).Distinct().OrderBy(x => x);

我找到的所有例子都给出了这种类型的答案。但它按画布大小排序,而我想按画布长度排序。

我被卡住了。。。任何提示都非常感谢...

Per J. Skeet> 其他信息:

company  canvasSize  canvasLength
abc       8x10         8
d         8x10         8
e         10x10        10
f         10x10        10
g         40x40        40

我希望它在画布上与众不同。问题是排序时,它会产生以下顺序:

10x10
40x40
8x10  

我想要相同的结果集,但使用 canvasLength 排序,因此结果为:

8x10
10x10
40x40
我认为

你所追求的可能是这样的:

var sizes = (from s in ent.competitors                         
             select new { s.canvasSize, s.canvasLength })
            .Distinct()
            .OrderBy(x => x.canvasLength);

更新

根据问题中的额外信息,以下内容应该可以满足您的需求:

var sizes = ent.competitors
               .Select(c => new {c.canvasSize, c.canvasLength})
               .Distinct()
               .OrderBy(x => x.canvasLength)
               .Select(x => x.CanvasSize)
var sizes = ent.competitors
               .GroupBy(s => s.canvasSize)
               .Select(g => g.First())
               .OrderBy(s => s.canvasLength);

相关内容

  • 没有找到相关文章

最新更新