c# – 将MultiDimensional数组排列为降序或升序

c# – 将MultiDimensional数组排列为降序或升序,第1张

概述我试图将这个多维数组安排为升序或降序.但是,我需要第1列和第2列之间的关系仍然在一起(意味着我需要例如数组[0,1]和数组[0,2]的数据在一起或以某种方式相关.这是我现在的代码. int[,] time = new int[5,2]{{0,4},{1,5},{5,10},{3,4},{0,2}};var sorted = from x in Enumerable.Range(0, time.G 我试图将这个多维数组安排为升序或降序.但是,我需要第1列和第2列之间的关系仍然在一起(意味着我需要例如数组[0,1]和数组[0,2]的数据在一起或以某种方式相关.这是我现在的代码.

int[,] time = new int[5,2]{{0,4},{1,5},{5,10},{3,{0,2}};var sorted = from x in Enumerable.Range(0,time.GetLength(0))                     from y in Enumerable.Range(0,time.GetLength(1))                     select new{                         X = x,Y = y,Value = time[x,y]                    }into point                    orderby point.Value descending                    select point;

这有效,但它将我的所有数据分开.有没有办法在保持第1列和第2列的关系的同时对它们进行排序?

解决方法 听起来您希望将数据存储在多维数组中,但将数组中的每一行保留为单独的原子单元.另外,每个“点”的比较是X,然后是Y.

int[,2] { { 0,4 },{ 1,5 },{ 5,10 },{ 3,{ 0,2 } };var sorted = from x in Enumerable.Range(0,time.GetLength(0))                     select new Point()                     {                         X = time[x,0],Y = time[x,1]                     } into point                     orderby point.X ascending,point.Y ascending                      select point;int[,] sortedTime = new int[5,2];int index = 0;foreach (var testPoint in sorted){  Point aPoint = (Point) testPoint;  sortedTime.SetValue(aPoint.X,index,0);  sortedTime.SetValue(aPoint.Y,1);  index++;}
总结

以上是内存溢出为你收集整理的c# – 将MultiDimensional数组排列为降序或升序全部内容,希望文章能够帮你解决c# – 将MultiDimensional数组排列为降序或升序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1217917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存