Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c如何对嵌套集合进行排序_C#_Sorting_Collections - Fatal编程技术网

C# c如何对嵌套集合进行排序

C# c如何对嵌套集合进行排序,c#,sorting,collections,C#,Sorting,Collections,我可能想得太多了,我迷路了。我是C新手,不知道解决这个问题的最佳方法是什么 string[]input=新字符串{FR_Paris,UK_London,UK_Bristol}; 控制台中的理想输出按国家/地区中城市的出现顺序排序,城市按字母顺序排序 在这种情况下: 英国2x布里斯托尔,伦敦 法国巴黎 我不会说谎,这是我的家庭作业。我知道如何解析输入,我认为城市必须使用一个可以排序但不知道是哪种类型的集合。当涉及到嵌套集合时,我有点不知所措 请至少给我一个方向 非常感谢 试试这个 // Init

我可能想得太多了,我迷路了。我是C新手,不知道解决这个问题的最佳方法是什么

string[]input=新字符串{FR_Paris,UK_London,UK_Bristol}; 控制台中的理想输出按国家/地区中城市的出现顺序排序,城市按字母顺序排序

在这种情况下:

英国2x布里斯托尔,伦敦 法国巴黎 我不会说谎,这是我的家庭作业。我知道如何解析输入,我认为城市必须使用一个可以排序但不知道是哪种类型的集合。当涉及到嵌套集合时,我有点不知所措

请至少给我一个方向

非常感谢

试试这个

// Init Array
string[] input = new string[] { "FR_Paris", "UK_London", "UK_Bristol" };

//Get All Codes
List<string> Codes = new List<string>();
foreach (var CityName in input)
{
   var Name = CityName.Split('_')[0]; // Get Name After _ Paris
   if (!Codes.Contains(Name))
      Codes.Add(va);
}

// Print
foreach (var Code in Codes.OrderBy(x => x))
{
   var AllNames = input.Where(x => x.StartsWith(Code + "_")).Select(x => x.Split('_')[1]);

   Console.WriteLine(Code + " " + xd.Count() + "x " + string.Join(",", AllNames.OrderBy(x => x)));
}
你可以试试linq

使用LINQ:

var grouped = input
    .Select(x => x.Split('_')) // Split all strings into array[2]
    .GroupBy(x => x[0]) // Group by country
    .OrderByDecending(x => x.Count()); // Order by number of cities

这回答了你的问题吗?首先,对每个国家进行计数,如果用“u”分隔,你可以分割字符串,得到它的ASCII码并将其存储在一个数组中,然后从该数组中获得计数。你可以使用正则表达式,但我可以在HomeWork中使用它,对于排序,你可以使用Linq内置的排序函数。法国巴黎、英国伦敦的字符串值是多少,还有UK_Bristol?您正在寻找的数据结构可能是一个,您可以使用@styx从数组中创建它,很好,很抱歉。我跳过了这篇文章编辑了不要给出变量名,比如va或xd,另外,你应该在循环外执行一次Codes.OrderByx=>x,为什么每次都这样做?Codes.OrderByx=>x不是每次都运行,它在foreach命中时只运行一次。非常感谢你们两位。。。我必须按发生率排序:英国2x布里斯托尔,伦敦FR 1x巴黎,但我会做其余的:
FR 1x Paris
UK 2x Bristol, London
var grouped = input
    .Select(x => x.Split('_')) // Split all strings into array[2]
    .GroupBy(x => x[0]) // Group by country
    .OrderByDecending(x => x.Count()); // Order by number of cities