2015-07-11 11 views
0

所以我有这样的C#列表中的格式:C# - 按国家排序数据其后市的最简单的方法

List<String> city_state = new List<String>(); 
//assume that each element in the above list has the following format: 
  • 俄克拉何马城
  • 马萨诸塞州波士顿
  • 印第安纳波利斯,印第安纳
  • AB,A
  • 了Aa,B

我的想法是使用.Split(“,”),然后在每个List上调用.Sort()。问题是,城市不会引用它的相应状态,从而破坏数据。有没有更简单的方法来做到这一点?

+3

这究竟是什么?它是'串'吗?它是'List '?更加详细一些。并请提供展示,但完整的程序也展示您的问题。 –

+0

我相信我增加了相应的细节。对于那个很抱歉 –

回答

3

假设你有一个List<string> strings琴弦,你可以得到一些LINQ代码排序列表:

var sortedList = strings 
    .Select(s => new { City = s.Split(",")[0], State = s.Split(",")[1] }) 
    .OrderBy(s => s.State).ThenBy(s => s.City).ToList(); 
0

假设,无论是国家还是城市都是唯一的钥匙,我会建议构建含有对的列表字符串(可以实现为列表)。首先,您可以根据第一个字符串进行排序,然后,您可以按照其中包含的城市对子集进行排序,EG是给定的状态。