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 回答