我想在我的数组中使用行和列删除方法。因此,我想将我的数组转换ArrayList
为使用该RemoveAt(int index)
方法,但在使用 .NET 4.5 的 Windows 8 应用程序中没有ArrayList
. 您能否给我一个建议,如何将我的简单int[,]
数组转换为另一种类型,该类型具有行和列删除方法?
问问题
1992 次
2 回答
2
您可以只使用列表列表:
List<List<int>> array = new List<List<int>>();
并将其初始化如下
for (int i = 0; i < orig_array.Length, i++)
{
array.Add(new List<int>(orig_array[i]));
}
使用这种方法,array.RemoveAt(row)
将删除一整行,而array[row].RemoveAt(col)
将删除一个元素。
编辑:正如 phoog 所指出的,对于声明为 int[,] 的数组,需要修改上述初始化,如下所示:
for (int row = 0; row < orig_array.GetLength(0), row++)
{
array.Add(new List<int>());
for (int col = 0; col < orig_array.GetLength(1); col++)
{
array[row].Add(orig_array[row, col]);
}
}
在这种情况下,使用锯齿状数组(与矩形数组相反)的优点是能够访问整行,而无需显式循环遍历这些值。
于 2012-09-26T23:49:49.567 回答
0
ArrayList 和所有非泛型集合已从 WinRT 中删除。此处的此链接将帮助您替换数组列表。
于 2012-09-27T02:56:06.433 回答