Rye*_*Rye 9 c# linq ilist winforms
没有任何Sort()功能IList.someoene可以帮我这个吗?我想对自己的IList进行排序.
假设这是我的IList:
public class MyObject() 
{
 public int number { get; set; }
 public string marker { get; set; }
}
如何使用标记字符串对myobj进行排序?
public void SortObject()
{
 IList<MyObject> myobj = new List<MyObject>();
}
Bru*_*oLM 17
使用 OrderBy
例
public class MyObject() 
{
    public int number { get; set; }
    public string marker { get; set; }
}
IList<MyObject> myobj = new List<MyObject>();
var orderedList = myobj.OrderBy(x => x.marker).ToList();
对于不区分大小写的情况,您应该使用IComparer
public class CaseInsensitiveComparer : IComparer<string>
{
    public int Compare(string x, string y)
    {
        return string.Compare(x, y, StringComparison.OrdinalIgnoreCase);
    }
}
IList<MyObject> myobj = new List<MyObject>();
var orderedList = myobj.OrderBy(x => x.marker, new CaseInsensitiveComparer()).ToList();
小智 11
我会反对使用OrderBy列表,因为它是一个LINQ扩展方法,因此:
ToList(),它会迭代它并用项目填充另一个新列表.实质上:它除了实际排序外,还创建并填充了2个新列表和2个枚举.相比之下,List.Sort()排序到位并且什么都不做,所以它的效率更高.
我的建议是:
List.Sort()或Array.Sort(array)Array.Sort(array)返回.| 归档时间: | 
 | 
| 查看次数: | 14725 次 | 
| 最近记录: |