积极答复者
排序问题

问题
-
有一个二维数组
(1.)string[,] arr={{A1,A2,A3}{B1,B2,B3,B4}}
也有可以是这样
(2.)string[,] arr={{A1,A2,A3,null,null}{B1,B2,B3,B4,B5}{C1,null,null,null,null}}
是不定项的
现在我要对这个数组排序为:A1,B1,A2,B2,A3,B3,A1
要怎么写??
我写的:
for (int k = 0; k < mediaInfo.GetLength(1); k++)
{
for (int j = 0; j < mediaInfo.GetLength(0); j++)
{
if (tote > indexRow)
{
if (!string.IsNullOrEmpty(mediaInfo[j, k]))
{
deliveryinfoTmp.Update(new Md_KK_DeliveryinfoTmp()
{
ProjectCode = projectInfo[j, k],
MediaCode = mediaInfo[j, k],
DeliVeryID = modelLlist[indexRow].DeliVeryID
});
indexRow++;
}
}
}
}结果:A1,B1,A2,B2,A3,B3,B4
答案
-
您好,
請問您排序的logic是什麼呢?
{{A1,A2,A3}{B1,B2,B3,B4}}
排出來是 A1,B1,A2,B2,A3,B3,A1 ?還是 A1,B1,A2,B2,A3,B3,A1,B4 呢?
那 {{A1,A2,A3,null,null}{B1,B2,B3,B4,B5}{C1,null,null,null,null}}
排出來的結果是?
new string[] {"A1", "A2", "A3"},
new string[] {"B1", "B2", "B3", "B4"}
出來的結果是
A1, B1, A2, B2, A3, B3, A1, B4 嗎?以下的code請您參考看看,
string[][] jaggedArray = { new string[] {"A1", "A2", "A3"}, new string[] {"B1", "B2", "B3", "B4"} }; //是否需要針對array排序? for (int i = 0; i < jaggedArray.Length; i++) { Array.Sort(jaggedArray[i]); } //取得jaggedArray最長的長度 int maxArrayLen = (from el in jaggedArray select el.Length).Max()-1; List<string> result = new List<string>(); for (int j = 0; j <= maxArrayLen; j++) { for (int i = 0; i < jaggedArray.Length; i++) { var idx = j; if (idx >= jaggedArray[i].Length) idx = j%maxArrayLen; result.Add(jaggedArray[i][idx]); } }
亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
- 已建议为答案 Fred BaoModerator 2013年8月26日 1:09
- 已编辑 亂馬客 2013年8月26日 1:37 add code
- 已标记为答案 Fred BaoModerator 2013年10月22日 3:16
-
你可以先建立一个 M * N 的矩阵 A,然后转置成 N * M 的矩阵 B,那么你现在可以很容易的给每行排个序,然后再从矩阵 B 中依次读入不为 null 的数据。
- 已建议为答案 Fred BaoModerator 2013年8月26日 1:09
- 已标记为答案 Fred BaoModerator 2013年10月22日 3:16
全部回复
-
您好,
請問您排序的logic是什麼呢?
{{A1,A2,A3}{B1,B2,B3,B4}}
排出來是 A1,B1,A2,B2,A3,B3,A1 ?還是 A1,B1,A2,B2,A3,B3,A1,B4 呢?
那 {{A1,A2,A3,null,null}{B1,B2,B3,B4,B5}{C1,null,null,null,null}}
排出來的結果是?
new string[] {"A1", "A2", "A3"},
new string[] {"B1", "B2", "B3", "B4"}
出來的結果是
A1, B1, A2, B2, A3, B3, A1, B4 嗎?以下的code請您參考看看,
string[][] jaggedArray = { new string[] {"A1", "A2", "A3"}, new string[] {"B1", "B2", "B3", "B4"} }; //是否需要針對array排序? for (int i = 0; i < jaggedArray.Length; i++) { Array.Sort(jaggedArray[i]); } //取得jaggedArray最長的長度 int maxArrayLen = (from el in jaggedArray select el.Length).Max()-1; List<string> result = new List<string>(); for (int j = 0; j <= maxArrayLen; j++) { for (int i = 0; i < jaggedArray.Length; i++) { var idx = j; if (idx >= jaggedArray[i].Length) idx = j%maxArrayLen; result.Add(jaggedArray[i][idx]); } }
亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
- 已建议为答案 Fred BaoModerator 2013年8月26日 1:09
- 已编辑 亂馬客 2013年8月26日 1:37 add code
- 已标记为答案 Fred BaoModerator 2013年10月22日 3:16
-
你可以先建立一个 M * N 的矩阵 A,然后转置成 N * M 的矩阵 B,那么你现在可以很容易的给每行排个序,然后再从矩阵 B 中依次读入不为 null 的数据。
- 已建议为答案 Fred BaoModerator 2013年8月26日 1:09
- 已标记为答案 Fred BaoModerator 2013年10月22日 3:16