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; }
}
Run Code Online (Sandbox Code Playgroud)
如何使用标记字符串对myobj进行排序?
public void SortObject()
{
IList<MyObject> myobj = new List<MyObject>();
}
Run Code Online (Sandbox Code Playgroud)
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();
Run Code Online (Sandbox Code Playgroud)
对于不区分大小写的情况,您应该使用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();
Run Code Online (Sandbox Code Playgroud)
小智 11
我会反对使用OrderBy列表,因为它是一个LINQ扩展方法,因此:
ToList(),它会迭代它并用项目填充另一个新列表.实质上:它除了实际排序外,还创建并填充了2个新列表和2个枚举.相比之下,List.Sort()排序到位并且什么都不做,所以它的效率更高.
我的建议是:
List.Sort()或Array.Sort(array)Array.Sort(array)返回.| 归档时间: |
|
| 查看次数: |
14725 次 |
| 最近记录: |