2

私はこのようなクラスのリストを持っています:

 public class CityCodeInfo
 {
    public string CityName;
    public string Province;
    public string Code; 
  }

  List<CityCodeInfo> lstCityt = new List<CityCodeInfo>();

このリストを変数 (都市名、州、コード) で並べ替えるにはどうすればよいですか

私はこのコードを試しました:

  lstCityt.Sort((x, y) => string.Compare(x.CityName, y.CityName));

しかし、うまくいきません...

何か案が?!

4

2 に答える 2

9

LINQ を使用できます。

昇順

var result = lstCityt.OrderBy(C=> C.CityName).ThenBy(C=> C.Province).ThenBy(C=> C.Code);

降順

var result = lstCityt.OrderByDescending(C=> C.CityName).ThenByDescending(C=> C.Province).ThenByDescending(C=> C.Code);

両方

var result = lstCityt.OrderBy(C=> C.CityName).ThenByDescending(C=> C.Province).ThenByDescending(C=> C.Code);
于 2012-08-11T07:25:01.327 に答える
2

あなたがすでに持っているものは、すでに完全で正しいものです:

lstCityt.Sort((x, y) => string.Compare(x.CityName, y.CityName));

それは確かにクラスのリストをソートします。リピーターに関連する二次的な問題が発生しているようですが、そのコンテキストを提供していません。私が主に注目するのはタイミングです。つまり、リストを並べ替える前にバインドするか、並べ替え後にバインドするかです。

于 2012-08-11T08:00:17.803 に答える