我有这堂课:
public class Myclass
{
public int id;
public string name;
}
和收藏:
Collection<Myclass> myCollection = new Collection<Myclass>();
我如何按 id 对这个集合进行排序????
我有这堂课:
public class Myclass
{
public int id;
public string name;
}
和收藏:
Collection<Myclass> myCollection = new Collection<Myclass>();
我如何按 id 对这个集合进行排序????
让你的类实现 IComparable,并定义
int CompareTo(MyClass other)
{
return Id.compareTo(other.Id);
}
然后可以使用任何标准的排序函数。
linq是最直接的方式
var sorted = (from my in myCollection orderby my.id select my).ToList();
这样做lambda expreesion
:
myCollection.Sort((a,b) => a.id.CompareTo(b.id));
如果您的课程IComparable<T>
以下列方式实现:
public class Myclass : IComparable<Myclass> {
public int id;
public string name;
public int CompareTo(Myclass myClass) {
return id.CompareTo(myClass.id);
}
}
然后,您可以直接调用Sort()
方法:
myCollection.Sort();
我和你一样使用了 myCollection,但它确实没有Sort()
方法....相反,你可以将你myCollection
的列表设置为列表,以便列表可以使用Sort()
方法。
集合 myCl=新集合();
var res = myCl.OrderBy(mc=>mc.Id).ToList();
Collection<Myclass> ss = new Collection<Myclass>();
var ordered=ss.OrderBy(s => s.id).ToList();
现在 order 将是按 ID 排序的 MyClass 对象列表
我建议你使用 List 而不是 Collection。对于排序,您可以使用 Linq 运算符 OrderBy。
List<Myclass> items = new List<Myclass>();
// Add items here
items=items.OrderBy(item=>item.Id).ToList();