如何在LINQ(C#)中对不同的val进行排序?

B. *_*non 1 c# linq generic-list distinct-values

我有这个LINQ从通用列表中获取特定类成员的不同值:

var distinctDescriptions = itemsForMonthYearList.Select(x => x.ItemDescription).Distinct();
Run Code Online (Sandbox Code Playgroud)

通用列表以这种方式定义:

List<ItemsForMonthYear> itemsForMonthYearList;
Run Code Online (Sandbox Code Playgroud)

这堂课是:

public class ItemsForMonthYear
{
    public String ItemDescription { get; set; }
    public String monthYr { get; set; }
    public int TotalPackages { get; set; }
    public Decimal TotalPurchases { get; set; }
    public Decimal AveragePrice { get; set; }
    public Double PercentOfTotal { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我认为这会奏效:

var distinctDescriptions = itemsForMonthYearList.Select(x => x.ItemDescription).Distinct().OrderBy(x => x.ItemDescription);
Run Code Online (Sandbox Code Playgroud)

...但它甚至没有编译:

" 'string'不包含'ItemDescription'的定义,也没有扩展方法'ItemDescription'接受'string'类型的第一个参数(你是否缺少using指令或汇编引用?) "

如何按字母顺序对不同的值进行排序?

Rah*_*ngh 5

问题是你已经预测了房产,ItemDescription所以它IEnumerable<String>现在是,所以你只需要通过它的项目订购: -

var distinctDescriptions = itemsForMonthYearList.Select(x => x.ItemDescription)
                                                .Distinct()
                                                .OrderBy(x => x);
Run Code Online (Sandbox Code Playgroud)