私はこのクラスを持っています:
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= new Collection();
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 オブジェクトのリストになります
コレクションの代わりにリストを使用することをお勧めします。並べ替えには、Linq 演算子 OrderBy を使用できます。
List<Myclass> items = new List<Myclass>();
// Add items here
items=items.OrderBy(item=>item.Id).ToList();