-6
public class Checkit
{
  public string ID{ get; set; }
  public string b{ get; set; }
  public string c{ get; set; }
}

私にはクラスがあり、次のようにも使用しますList<T>

Checkitcs = new Checkit();
List<Checkit> Lst_Ch = new List<Checkit>();

で並べ替えたいですID。例えば:

Lst_Ch[1] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[2] = { ID=124 , b='afgasf' , c='afagas'}
Lst_Ch[3] = { ID=523 , b='afasfa' , c='afagas'}
Lst_Ch[4] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[5] = { ID=523 , b='afasfa' , c='afagas'}
Lst_Ch[6] = { ID=105 , b='afasfa' , c='afagas'}

そして、私はそのようにソートしたい:

Lst_Ch[6] = { ID=105 , b='afasfa' , c='afagas'}
Lst_Ch[1] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[4] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[2] = { ID=124 , b='afasfa' , c='afagas'}
Lst_Ch[5] = { ID=523 , b='afasfa' , c='afagas'}
Lst_Ch[5] = { ID=523 , b='afasfa' , c='afagas'}

このリストを並べ替えるにはどうすればよいですか?

4

2 に答える 2

1

IDクラスのプロパティはinta ではなく an であるstring必要があり、次のように文字列値を二重引用符で囲む必要があるため、サンプル コードはコンパイルされません。

public class Checkit
{
    public int ID { get; set; }
    public string b { get; set; }
    public string c { get; set; }
}

List<Checkit> Lst_Ch = new List<Checkit>();
Lst_Ch.Add(new Checkit
{
    ID = 123,
    b = "afasfa",
    c = "afagas"
});
Lst_Ch.Add(new Checkit
{
    ID = 124,
    b = "afasfa",
    c = "afagas"
});
Lst_Ch.Add(new Checkit
{
    ID = 523,
    b = "afasfa",
    c = "afagas"
});
Lst_Ch.Add(new Checkit
{
    ID = 123,
    b = "afasfa",
    c = "afagas"
});        
Lst_Ch.Add(new Checkit
{
    ID = 523,
    b = "afasfa",
    c = "afagas"
});
Lst_Ch.Add(new Checkit
{
    ID = 105,
    b = "afasfa",
    c = "afagas"
});

次に、リストを並べ替えるには、次の手順を実行します。

IEnumerable<Checkit> query = Lst_Ch.OrderBy(l => l.ID).ToList();

変数queryはソートされたリストになり、他の場所で使用したり、ループスルーしたりできます。

于 2013-11-05T18:31:25.730 に答える
0

あなたはできる

  • Linq を使用して並べ替え、新しいList<T>. 何かのようなもの:

    List<Foo> unsortedList = CreateAnUnorderedList() ;
    List<Foo> sortedList   = unsortedList.OrderBy( x => x.DateCreated )
                                         .ThenBy(  x => x.Id          )
                                         .ToList()
                                         ; 
    
  • その場で並べ替えることができます。何かのようなもの:

    List<Foo> myList = CreateAnUnorderedList() ;
    myList.Sort( (x,y) => x.Id < y.Id ? -1 : x.Id > y.Id ? +1 : 0 ) ;
    

または、 のような順序付けられたコレクションを使用できますSortedList<T>

于 2013-11-05T18:49:40.240 に答える