2015-07-11 36 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是給定的狀態。