C# - 按州和城市排序数据的最简单方法

时间:2015-07-11 15:41:12

标签: c# sorting

所以我在C#中有一个List,格式如下:

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

我的想法是使用.Split(&#34;,&#34;)然后在每个List上调用.Sort()。问题是,城市不会引用它的相应状态,从而破坏数据。有没有更简单的方法呢?

2 个答案:

答案 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();

答案 1 :(得分:0)

假设州和城市都不是唯一键,我建议构建一个包含字符串对的列表(可以作为列表实现)。首先,您可以根据第一个字符串进行排序,然后,您可以按照其中包含的城市对给定状态的子集进行排序。

相关问题