按长度排序数组

Posted

技术标签:

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

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

public class Kata

  public static string[] SortByLength (string[] array)
  
    Array.Sort(array);
    return array;
  

【问题讨论】:

你想要的是OrderBy 【参考方案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);

【讨论】:

不按长度排序

以上是关于按长度排序数组的主要内容,如果未能解决你的问题,请参考以下文章

按数组长度排序对象键值[重复]

按长度排序字符串数组

Shell 按照字符串长度进行排序

字符串数组排序(C语言)(qsort库函数)

如何按NSString长度对NSMutableArray进行排序?

冒泡排序法对随机生成的十个数按升序进行排序