我有两个数据类:
public class Category
{
public string Title { get; set; }
public int OrderNo { get; set; }
}
public class Element
{
public string Prop1 { get; set; }
// ...
public string PropN { get; set; }
public Category Category { get; set; }
}
鉴于Element
- 对象的枚举,我需要Category
Title
的明确枚举 - OrderNo
排序的字符串。
如果我有一个Category
- 对象的枚举,这将是:
var catTitles = categories.OrderBy(cat => cat.OrderNo).Select(cat => cat.Title).Distinct();
但是我只有一个Element
- 枚举的枚举,它引用了它们的Category
- 对象......有没有一种简单的方法可以通过LINQ提取它们?
答案 0 :(得分:2)
几乎相同,您需要选择Category
:
var query = elements
.OrderBy(el => el.Category.OrderNo)
.Select(el => el.Category.Title)
.Distinct();
如果类别可以是null
:
var query = elements
.OrderBy(el => el.Category == null ? int.MaxValue : el.Category.OrderNo)
.Select(el => el.Category == null ? null : el.Category.Title)
.Distinct();
答案 1 :(得分:1)
elementList.Select(x => x.Category)
.OrderBy(x => x.OrderNo)
.Select(x => x.Title)
.Distinct();
答案 2 :(得分:0)
var Result = categories.GroupBy(p=> p.Category).Select(group => group.OrderByDescending(d=> d.OrderNo)).ToList();