我知道我可以通过这样的对列表进行排序
var result = List<T>.OrderBy(value => value.property);
但假设我有这样的
class Stock
{
public Guid ID { get; set; }
public string Description { get; set; }
}
class StockList : List<Stock>
{
public enum SomeEnum
{
SomeOtherValue = 0,
SomeOtherOtherValue
}
//What if I want method like this using LINQ?
public void Sort(SomeEnum sortBy)
{
switch (sortBy)
{
case SomeValue.SomeOtherOtherValue:
//Sort one way
break;
case SomeValue.SomeOtherValue:
//Sort another
break;
}
}
}
this.OrderBy()
(我假设其他LINQ扩展)返回一个OrderedCollection,并且似乎不会影响原始的。所以我认为我做这件事的方式不对?
您可以使用List.Sort()。这将对列表进行就地排序。
您可以进行
this.Sort(new Comparison<Stock>((x,y) => x.Description.CompareTo(y.Description)));