c# – 将MultiDimensional数组排列为降序或升序
发布时间:2020-12-16 01:52:52 所属栏目:百科 来源:网络整理
导读:我试图将这个多维数组安排为升序或降序.但是,我需要第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
我试图将这个多维数组安排为升序或降序.但是,我需要第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++; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |