C# 按字符串属性C排序对象列表#
可能的重复项:C# 按字符串属性C排序对象列表#,c#,.net,C#,.net,可能的重复项: 如何按照字符串属性按字母顺序对对象列表进行排序 我尝试在属性上实现IComparable,但我只知道如何在第一个字符上排序(使用char) 编辑:下面是一些示例代码 class MyObject { public string MyProperty {get;set;} } List<MyObject> sampleList = new List<MyObject>(); MyObject sample = new MyObject
如何按照字符串属性按字母顺序对对象列表进行排序 我尝试在属性上实现IComparable,但我只知道如何在第一个字符上排序(使用char) 编辑:下面是一些示例代码
class MyObject {
public string MyProperty {get;set;}
}
List<MyObject> sampleList = new List<MyObject>();
MyObject sample = new MyObject();
sample.MyProperty = "Aardvark";
MyObject sample2 = new MyObject();
sample2.MyProperty = "Zebra";
sampleList.Add(sample);
sampleList.Add(sample2);
sampleList.Sort(); // or something similar
foreach (var item in sampleList) {
Console.WriteLine(item.MyProperty);
}
类MyObject{
公共字符串MyProperty{get;set;}
}
List sampleList=新列表();
MyObject样本=新的MyObject();
sample.MyProperty=“Aardvark”;
MyObject sample2=新的MyObject();
sample2.MyProperty=“Zebra”;
样本列表。添加(样本);
添加(样本2);
sampleList.Sort();//或者类似的东西
foreach(样本列表中的变量项){
Console.WriteLine(item.MyProperty);
}
应该输出土豚和斑马(按字母顺序)
谢谢 您可以获得排序后的
IEnumerable
如下:
var sortedQuery = sampleList.OrderBy(x => x.MyProperty);
然后,您可以将查询转换为如下列表:
var sortedList = sortedQuery.ToList();
或者,您可以通过以下项目进行迭代:
foreach (var obj in sortedQuery)
Console.WriteLine(obj.MyProperty);
假设您的集合实现了
IEnumerable
接口,您只需对集合调用OrderBy
方法即可:
myCollection.OrderBy(c => c.Property);
您可以使用comparison委托,使用
排序(comparison-comparison)
重载来完成
list.Sort((a, b) => a.StringProperty.CompareTo(b.StringProperty));
var list=newlist();
//将SomeClass的一些实例添加到列表中
list.Sort((x,y)=>x.SomeProperty.CompareTo(y.SomeProperty));
确保包括System.Collections.Generic和System.Linq
List<myItemType> lst = new List<myItemType>();
return lst.OrderBy(i => i.StringPropertyName);
List lst=new List();
返回lst.OrderBy(i=>i.StringPropertyName);
将代码转换为C#
如果列表对象ABC中的每个对象都有字符串属性S
Dim Mylist作为新列表(ABC的)
您将得到一个结果,放在一个迭代器上。这可能有助于Hi Jason-它返回一个可枚举实例,其中枚举将被排序。我想您可以执行lst=newlist(lst.OrderBy(…);
List<myItemType> lst = new List<myItemType>();
return lst.OrderBy(i => i.StringPropertyName);
Dim a = From i In Mylist _
Order By i.S Ascending