C# 排序数组包含使用c数组的数字字符串
请参考以下数组 字符串[]numArray={2,3,1,7,9,2,1} 我们需要按数字对数组进行排序,并返回排序后的数组,如C# 排序数组包含使用c数组的数字字符串,c#,arrays,sorting,C#,Arrays,Sorting,请参考以下数组 字符串[]numArray={2,3,1,7,9,2,1} 我们需要按数字对数组进行排序,并返回排序后的数组,如 string[] output = {"one","one","two","two","three","seven","nine"}; 请仅使用字符串数组或任何方法建议c代码中的最佳逻辑。您可以在字典中存储数字,其中键为字符串(例如2),值为整数(例如2)。通过使用LINQ,您可以首先用数字替换输入数组中的字符串,然后用OrderBy对它们进行排序。对数字进行排序后
string[] output = {"one","one","two","two","three","seven","nine"};
请仅使用字符串数组或任何方法建议c代码中的最佳逻辑。您可以在字典中存储数字,其中键为字符串(例如2),值为整数(例如2)。通过使用LINQ,您可以首先用数字替换输入数组中的字符串,然后用OrderBy对它们进行排序。对数字进行排序后,可以将数字转换回字符串:
Dictionary<string, int> numbers = new Dictionary<string, int>() {
{ "one", 1 },
{ "two", 2 },
{ "three", 3 },
{ "four", 4 },
{ "five", 5 },
{ "six", 6 },
{ "seven", 7 },
{ "eight", 8 },
{ "nine", 9 },
};
string[] wordArray = { "two", "three", "one", "seven", "nine", "two", "one" };
var numberArray = Enumerable.Range(0, wordArray.Length)
.Select(i => numbers[wordArray[i]])
.OrderBy(x => x).ToArray();
var output = Enumerable.Range(0, numberArray.Length)
.Select(i => numbers.FirstOrDefault(x => x.Value == numberArray[i]).Key)
.ToArray();
Output={1,1,2,2,3,7,9}为了能够排序,您需要给出一个实际的顺序。字符的顺序通常是a,b,c,。。。通常在“一”等词上给出的顺序称为“一”。然而,您想要按照后面的含义进行排序,它的语义是:整数 你的计算机不知道你想要这个,所以你需要提供它的意思,这是通过一个函数,从技术上来说就是一个字典 计算机内置了整数的顺序,在通常的数学中,它也内置于标准整数中。因此,您需要提供一个一对一的函数,例如,一个字典,或者一个uple列表,例如,list,这样您就可以从整数对等词中对单词进行排序。您还可以用字母映射单词:one-a,two-b。。。当你到达z,你继续aa,这是基数27。您也可以使用位base2、base64等执行此操作,但始终存在一个带有整数的映射
依我看,理解比了解更重要。现在,您可以编写许多解决方案。这对我来说似乎是家庭作业。将数字名称转换为数值,并按数值排序。您尝试了什么,代码在哪里?@SENTHILVEL不是代码编写服务。我们不会为您编写代码,因为StackOverflow不是代码编写服务。