C# 如何把int[][]转换成int[*,*]

 

// dt.Rows[i]["pos"] 如下示例

//{0,0}
//{1,0}
//{2,0}
//{3,0}
//{4,0}
//{5,0}

List<int[]> lstInt = new List<int[]>();
for (int i = 0; i < dt.Rows.Count; i++)
{
int[] intTemp = Array.ConvertAll<string, int>(dt.Rows[i]["pos"].ToString().Split(','), s => int.Parse(s));
lstInt.Add(intTemp);

}
//int[][] blk_pos = lstInt.ToArray();
int[,] blk_pos = ToMultidimensionalArray(lstInt);

 

//转换方法(可以把int数组类型换成double数组类型等,都是支持的)

static int[,] ToMultidimensionalArray(List<int[]> arrayList)
{
int[,] mdArray = new int[arrayList.Count, arrayList[0].Length];
int rowIndex = 0;
arrayList.ForEach(x =>
{
Buffer.BlockCopy(
x, // src
0, // srcOffset
mdArray, // dst
rowIndex++ * mdArray.GetLength(1) * sizeof(int), // dstOffset
x.Length * sizeof(int)); // count
});

return mdArray;
}

posted @ 2021-07-13 19:07  二零一七  阅读(679)  评论(0编辑  收藏  举报