Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 排序列表<;T>;具有LINQ的内部子类_C#_Linq_Sorting_Collections_Ienumerable - Fatal编程技术网

C# 排序列表<;T>;具有LINQ的内部子类

C# 排序列表<;T>;具有LINQ的内部子类,c#,linq,sorting,collections,ienumerable,C#,Linq,Sorting,Collections,Ienumerable,我知道我可以像这样对列表进行排序 var result = List<T>.OrderBy(value => value.property); class Stock { public Guid ID { get; set; } public string Description { get; set; } } class StockList : List<Stock> {

我知道我可以像这样对列表进行排序

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;
            }
        }
    }
var result=List.OrderBy(value=>value.property);
但假设我有这样的东西

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;
            }
        }
    }
类别股票
{
公共Guid ID{get;set;}
公共字符串说明{get;set;}
}
班级存货清单:清单
{
公共枚举SomeEnum
{
SomeOtherValue=0,
其他价值观
}
//如果我想要使用LINQ这样的方法呢?
公共无效排序(SomeEnum排序)
{
开关(sortBy)
{
案例SomeValue.SomeOtherValue:
//单程排序
打破
案例SomeValue.SomeOtherValue:
//另类
打破
}
}
}
this.OrderBy()
(我假设其他LINQ扩展)返回OrderedCollection,并且似乎不会影响原始集合。所以我想我是走错了路?

你可以用。这将对列表进行就地排序。

您可以这样做

this.Sort(new Comparison<Stock>((x,y) => x.Description.CompareTo(y.Description)));
this.Sort(新的比较((x,y)=>x.Description.CompareTo(y.Description));

请注意,当您执行
List.OrderBY(…)
操作时,您不是在对列表进行排序,而是在返回一个可枚举项,该可枚举项将按顺序枚举列表。i、 清单没有生效(如你所发现的)。