List.Sort(CustomSort...)这个列表到aspOptionButtonList并按字母顺序排序。但是,我想按如下方式对列表进行排序:全部到H,一些,全部到O。我该怎么做?林克很棒。您甚至可以构建要在运行时定义的订单序列,因为直到ToList才执行排序。varsortedList=yourList.OrderBy(i=>i.FullToH).ThenBy(i=>i.Partial).ThenBy(i=>i.FullToO).ToList();感谢大家的帮助!我是这样做的:ListsortedList=newList();sortedList=list.OrderBy(i=>i.CodeValue=="FullToH").ThenBy(i=>i.CodeValue=="部分").ThenBy(i=>i.CodeValue=="FullToO").ToList();然后绑定到sortedList!好吧,我知道这已经有几年了,但我有一个替代解决方案,我认为它比上面的解决方案更优雅,未来的读者可能会考虑:在你的课堂上:staticreadonlyListcodeValueSortOrder=newList{"FullToH","部分","全部到O"};在你的方法中:sortedList=list.OrderBy(i=>codeValueSortOrder.IndexOf(i.CodeValue));您列出的项目(例如FullToHo)只是字符串?如果是这样,那么您需要做的就是编写一个方法来进行比较并使用该方法进行排序。publicintCompareEntries(stringleft,stringright){conststringfullToH="FullToH";conststringpartial="部分";conststringfullToO="FullToO";如果(左==右){返回0;}elseif(left==fullToH){return-1;}elseif(left==fullToO){return1;}elseif(right==fullToH){返回1;}else{返回-1;}}列表.Sort(CompareEntries);为您的对象实施IComparer。http://devcity.net/Articles/20/1/20020304.aspxhttp://support.microsoft.com/kb/321292假设你的列表不是ListmyList=newList();而是像ListmyList=newList();(其中每个元素具有相同的对象类型)您可以这样做:myList.Sort((firstObj,secondObj)=>{returnfirstObj.SomeProperty.CompareTo(secondObj.SomeProperty);});为您创建自定义类型的Comparer(实现IComparer接口)。然后您可以使用它对列表进行排序:Listlist=newList();//填充列表list.Sort(newCustomComparer());或者,如果您使用的是较新版本的框架并且不需要重新使用排序逻辑,则可以使用IEnumerable.OrderBy()方法。以上就是C#学习教程List.Sort(自定义排序...)分享的全部内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
