【问题标题】:Sorting array by length按长度排序数组
【发布时间】:2020-11-08 07:43:19
【问题描述】:

我想按长度对这个数组进行排序,但我该怎么做呢?我在网上搜索了一段时间,但找不到任何东西。该代码应该对字符串数组中每个字符串长度随机给出的数组进行排序,但我无法声明我希望它如何排序。

public class Kata
{
  public static string[] SortByLength (string[] array)
  {
    Array.Sort(array);
    return array;
  }
}

【问题讨论】:

标签: c# arrays sorting


【解决方案1】:

好吧,为了对array 就地进行排序,您应该提供排序规则

  Array.Sort(array, (x, y) => x.Length.CompareTo(y.Length));   

方法可以

  public static string[] SortByLength (string[] array) {
    //TODO: validate array and its items here; they must be not null

    Array.Sort(array, (x, y) => x.Length.CompareTo(y.Length));

    return array;
  } 

【讨论】:

    【解决方案2】:

    使用 linq...

    public static string[] SortByLength (string[] array) =>
        array.OrderBy( x => x?.Length ?? 0 ).ToArray();
    

    【讨论】:

      【解决方案3】:

      老兄,它应该是这样工作的。

      Array.Sort(array, StringComparer.InvariantCulture);
      

      【讨论】:

      • 不按长度排序
      猜你喜欢
      • 1970-01-01
      • 2012-02-20
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      相关资源
      最近更新 更多