Csharp/C#教程:按元素长度排序字符串数组分享


按元素长度排序字符串数组

有一个字符串数组如何更新它,以便它的元素按其长度排序。

我在努力

string[] arr = {"aa","ss","a","abc"}; arr = arr.OrderBy(aux => aux.Length); 

所以,我会得到a,aa,ss,abc ,但它说

不能隐式转换类型’system.linq.iorderedenumerable到string []’

所以,我在做

 foreach (string s in arr.OrderBy(str => str.Length)) { // } 

还有其他办法吗?

由于arr是一个数组,您可以使用方便的Array.Sort方法:

 Array.Sort(arr, (x, y) => x.Length.CompareTo(y.Length)); foreach (string s in arr) { ... } 

这比OrderBy更有效,因为它将对数组的元素进行排序,而不是创建要枚举的新集合。

OrderBy返回IEnumerable ,而不是数组。 使用ToArray方法获取数组:

 arr = arr.OrderBy(aux => aux.Length).ToArray(); 

但是,它不会对源数组进行排序。 而不是那样,它将创建一个新项目,其中项目已排序并替换参考。 如果需要就地排序(例如,当数组也在别处引用时),请使用Array.Sort方法:

 Array.Sort(x, (x1, x2) => x1.Length.CompareTo(x2.Length)); 

您也可以使用Linq执行此操作,如下所示:

上述就是C#学习教程:按元素长度排序字符串数组分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

 var sortedElements = from arrElement in arr.Distinct() orderby arrElement.Length select arrElement; foreach (string element in sortedElements) { ... } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/1030092.html

(0)
上一篇 2022年1月13日
下一篇 2022年1月13日

精彩推荐