使用LINQ对字符串数组进行排序我有一个字符串数组声明如下string[][]data=newstring[3][];字符串[]名称=新字符串[10];字符串[]联系人=新字符串[10];字符串[]地址=新字符串[10];在我填写姓名,地址和联系人数据后,地址可以是某些数据字符串中的空字符。之后我将它分配给字符串数组数据。数据[0]=名称;数据[1]=联系人;data[2]=address如何使用LINQ按名称对字符串数组进行排序。我尝试data=data.orderby(y=>y[0])。ToArray();但是这种方式会改变字符串数组的顺序。假设data[0]是商店名称,但排序后它变成了商店地址。谁知道如何对记录进行排序?请帮助您可以使用它对名称数组(存储在数据[0]中)进行排序:data[0]=data[0].OrderBy(x=>x).ToArray();然而,这将导致其他数组中的数据失去与名称数组的任何有意义的相关性(例如,name[3]很可能与contact[3]不匹配)。为了避免这种情况,我强烈建议使用一个类来存储这些信息:classMyClass//TODO:想出一个更好的名字{publicstringName{get;放;}publicstringContact{get;放;}公共字符串地址{得到;放;}}要声明一个数组,请使用:MyClass[]data=newMyClass[10];data[0]=newMyClass//填充第一条记录{Name="...",Contact="...",Address="...",};并对数组进行排序:data=data.OrderBy(x=>x.Name).ToArray();或者这样:Array.Sort(data,(x,y)=>x.Name.CompareTo(y.Name));第二个选项更有效,因为它重新排列元素并且不需要分配新数组来存储结果。或者,使用列表:Listdata=newList(10);data.Add(newMyClass//填充第一条记录{Name="...",Contact="...",Address="...",});并对列表进行排序:data.Sort((x,y)=>x.Name.CompareTo(y.Name));这将具有与Array.Sort方法类似的性能,但是,如果您需要能够从列表中动态添加或删除元素,那么它是更好的选择。以上就是C#学习教程:使用LINQ对字符串数组进行排序的全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
