当前位置: 首页 > 编程语言 > C#

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

时间:2023-04-10 15:38:18 C#

SortStringArraysbyElementLength有一个字符串数组如何更新它,使其元素按长度排序。我正在尝试string[]arr={"aa","ss","a","abc"};arr=arr.OrderBy(aux=>aux.Length);所以,我会得到a,aa,ss,abc,但它说不能隐式转换类型'system.linq.iorderedenumerabletostring[]'所以,我正在做foreach(stringsinarr.OrderBy(str=>str.Length)){//}还有其他方法吗?由于arr是一个数组,您可以使用方便的Array.Sort方法:Array.Sort(arr,(x,y)=>x.Length.CompareTo(y.Length));foreach(stringsinarr){...}这比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#学习教程,希望大家多多关注——varsortedElements=fromarrElementinarr.Distinct()orderbyarrElement.LengthselectarrElement;foreach(stringelementinsortedElements){...}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: