C#支持索引排序吗?是否有任何内置的C#支持索引排序?更多细节:我有几组数据存储在一个通用双列表中。这些列表的长度总是相等的,并保存相应的数据项,但这些列表是动态变化的,所以我不能将相应的数据项干净利落地存储在类或结构中。(我也在处理一些遗留问题。)我需要能够从任一数据集中对这些键进行排序。我认为最好的方法是添加一个间接层,并使用基于索引的排序。这种类型已经使用了很多年。基于索引的排序的快速定义:令“索引”为与列表长度相同的连续整数数组,然后排序算法对整数列表进行排序,使得任何anylist[index[N]]给出第一个任何按N项排序的列表。列表本身永远不会重新排序。是否有任何内置的C#支持索引排序?我没能找到它……我找到的一切都重新制作了这个系列。我的猜测是支持存在,但我还没有找到合适的地方。我在Windows下使用C#.NET3.5。设置索引数组后,可以使用自定义比较对其进行排序,比较数据数组中相应项中的值:Array.Sort(index,(a,b)=>anylist[a].CompareTo(anylist[b]));下面的代码实现了索引排序。请注意用于克隆数据数组的ToArray()调用。如果省略,数据数组也会排序。staticvoidMain(String[]args){Int32[]data=newInt32[]{-6,6,5,4,1,2,3,0,-1,-2,-3,-4,-5};Int32[]indices=Enumerable.Range(0,data.Length).ToArray();Array.Sort(data.ToArray(),索引);foreach(Int32indexinindices){Console.Write(String.Format("{0}",data[index]));}控制台.ReadLine();}输出符合预期。以上是C#学习教程:IsthereC#supportforindex-basedsorting?分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注——-6-5-4-3-2-10123456这个文章来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
