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

C#LearningTutorial-HowtoSortaDictionarybyKey分享

时间:2023-04-10 14:56:23 C#

如何按键排序字典,t2,t3但不知道如何解决这个问题ok检查它应该工作varr=newDictionary();r.Add("c3",新点(0,0));r.Add("c1",新点(0,0));r.Add("t3",新点(0,0));河添加("c4",新点(0,0));河添加("c2",新点(0,0));河添加("t1",新点(0,0));r.Add("t2",新点(0,0));varl=r.OrderBy(key=>key.Key);vardic=l.ToDictionary((keyItem)=>keyItem.Key,(valueItem)=>valueItem.Value);foreach(varitemindic){Console.WriteLine(item.Key);}控制台.ReadLine();Input.OrderBy不对字典进行排序,它创建一个按顺序返回项目的字典。也许OrderedDictionary可以满足您的需求。或者使用GenericSortedDictionary将未排序的对象加载到SortedDictionary对象中,如下所示:SortedDictionarysortedCustomerData=newSortedDictionary(unsortedCustomerData);其中unsortedCustomerData是相同的泛型类型(DictionaryString、String或您的情况下的String方向)。它将自动按键对新对象进行排序根据msdn:SortedDictionary(IDictionary):初始化SortedDictionary类的新实例,其中包含从指定IDictionary复制的元素,并使用默认的IComparer实现作为键类型。只是一个猜测,但看起来您假设它将对输入进行排序。OrderBy方法实际上返回包含相同值的IOrderedEnumerable的有序实例。如果你想保留返回值,你可以这样做:IOrderedEnumerableorderedInputorderedInput=Input.OrderBy(key=>key.Key)大多数修改集合的方法都遵循相同的模式。它这样做是为了不改变原始集合实例。这可以防止您在无意中意外更改实例。如果你真的只想使用排序后的实例,那么你可以将变量设置为方法的返回值,如上所示。由于Input.OrderBy创建了一个按有序顺序返回项目的查询,因此只需将其分配给同一个字典即可。objectDict=objectDict.OrderBy(obj=>obj.Key).ToDictionary(obj=>obj.Key,obj=>obj.Value);以下代码使用另外两个列表对字典进行排序。使用系统;使用System.Collections.Generic;使用系统绘图;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){Dictionaryr=newDictionary();r.Add("c3",新点(0,1));r.Add("c1",新点(1,2));r.Add("t3",新点(2,3));r.Add("c4",新点(3,4));r.Add("c2",新点(4,5));r.Add("t1",新点(5,6));r.Add("t2",新点(6,7));//创建键列表Listzlk=newList(r.Keys);//然后对其进行排序。zlk.排序();列表zlv=newList();//使用order.foreach(variteminzlk){zlv.Add(r[item]);}r.Clear();for(inti=0;i上面代码的输出如下。c112c245c301c434t156t267t323我用了varl=Input.OrderBy(key=>key.Key);我把它转成了字典以上就是C#学习教程:如何keypairs字典整理分享所有内容,如果对大家有用,还需要进一步了解C#学习教程,希望大家多多关注,本文采集自网络,不代表立场,如涉及侵权,请点击右下角联系管理员删除,如有请注明出处: