0

私はこのクラスを持っています:

public class Myclass
{
    public int id;
    public string name;
}

コレクション:

Collection<Myclass> myCollection = new Collection<Myclass>();

このコレクションをIDで並べ替えるにはどうすればよいですか????

4

6 に答える 6

6

クラスに IComparable を実装し、定義する

int CompareTo(MyClass other)
{
    return Id.compareTo(other.Id);
}

次に、標準のソート機能を使用できます。

于 2012-07-29T18:12:42.880 に答える
3

Linq は最も簡単な方法です

var sorted = (from my in myCollection orderby my.id select my).ToList();
于 2012-07-29T18:12:45.090 に答える
2

次のようにし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()

于 2012-07-29T18:15:25.400 に答える
0

コレクション myCl= new Collection();

var res = myCl.OrderBy(mc=>mc.Id).ToList();
于 2012-07-29T18:14:03.607 に答える
0
Collection<Myclass> ss = new Collection<Myclass>();
var ordered=ss.OrderBy(s => s.id).ToList();

order は ID 順の MyClass オブジェクトのリストになります

于 2012-07-29T18:14:58.027 に答える
0

コレクションの代わりにリストを使用することをお勧めします。並べ替えには、Linq 演算子 OrderBy を使用できます。

List<Myclass> items = new List<Myclass>();
// Add items here
items=items.OrderBy(item=>item.Id).ToList();
于 2012-07-29T18:15:37.110 に答える