如何使用Linq对通用列表进行排序?如何在linq中对myScriptCellsCount.MyCellsCharactersCount(listinttype)进行排序放;}publicMyExcelSheetsCells(){MyCellsCharactersCount=newListTable();}}voidArrangedDataList(数据表);foreach(DataColumndcindTable.Columns)foreach(DataRowdrindTable.Rows)myScriptCellsCount.MyCellsCharactersCount.Add(dr[dc].ToString().Length);//我如何排序desc//myScriptCellsCount.MyCellsCharactersCount=fromlistinmyScriptCellsCount.MyCellsCharactersCount//orderbylist.CompareTo(降序//选择列表;CreateSqlTable(myexcelSheet.MyColumnNames,dTable.TableName,myScriptCellsCount.MyCellsCharactorCount[0].ToString());myscript.WriteScript(myscript.SqlScripts);}//使用LinqMyCellsCharactersCount.OrderBy(x=>x);//递增MyCellsCharactersCount.OrderByDescending(x=>x);//降序//不使用LinqMyCellsCharactersCount.Sort();//升序MyCellsCharactersCount.Sort().Reverse();//降序你可以使用OrderBy或Sort,但你应该明白两者之间的区别:如果你排序,它会“就地”排序你的列表,所以在这个例子中变量“list”将被排序://您可以操纵返回1还是-1来进行升序/降序排序list.Sort((x,y)=>{if(x>y)return1;elseif(x==y)return0;elsereturn-1;});//你可以控制返回1还是-1来进行升序/降序排序list.Sort((x,y)=>{if(x>y)return1;elseif(x==y)return0;否则返回-1;});如果执行OrderBy,原始列表不受影响,但返回一个新的排序枚举:varsorted=list.OrderByDescending(x=>x)重要细节:如果您使用上面的LINQ代码(第二个示例),则每次迭代变量“sorted”时都会进行排序。所以,如果你有超过1个foreach,你将重复这种排序。为避免这种情况,将上面的代码更改为:varsorted=list.OrderByDescending(x=>x).ToList();//或.ToArray()这将强制枚举器运行,并将结果存储在排序中。如果只想枚举一次,可以省略ToList/ToArray调用。您应该能够在列表中使用OrderBy方法。IEnumerablesortedList=myScriptCellsCount.MyCellsCharactersCount.OrderBy(anInt=>anInt);varsorted=fromiinMyCellsCharacterCountorderbyidescendingselecti;看到这个答案。您可以通过获取ListOf列表来替换“对象”。干杯C#学习教程就这些:如何使用Linq对通用列表进行排序?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
