排列最小到最大的整数

wil*_*iam 3 .net c#

string strArr="5,3,8,1,9,2,0,6,4,7";
Run Code Online (Sandbox Code Playgroud)

我想重新排列数字的顺序,所以结果将如下所示:

string result ="0,1,2,3,4,5,6,7,8,9";
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Guf*_*ffa 20

拆分,排序和加入:

string[] nums = strArr.Split(',');
Array.Sort(nums);
string result = String.Join(",", nums);
Run Code Online (Sandbox Code Playgroud)

要么:

string result =
  String.Join(",",
    strArr.Split(',')
    .OrderBy(s => s)
    .ToArray()
  );
Run Code Online (Sandbox Code Playgroud)

如果您有一个数字较大的字符串需要按数字排序,则不能将它们排序为字符串,例如"2">"1000".您可以将每个子字符串转换为数字,排序,然后将它们转换回来:

string result =
  String.Join(",",
    strArr
      .Split(',')
      .Select(s => Int32.Parse(s))
      .OrderBy(n => n)
      .Select(n => n.ToString())
      .ToArray()
  );
Run Code Online (Sandbox Code Playgroud)

或者,正如mastoj建议的那样,解析排序中的字符串:

string result =
  String.Join(",",
    strArr
      .Split(',')
      .OrderBy(s => Int32.Parse(s))
      .ToArray()
  );
Run Code Online (Sandbox Code Playgroud)