1. 程式人生 > 其它 >C# 如何把int[][]轉換成int[*,*]

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);

//轉換方法

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;
}