繁体   English   中英

Windows 8 Metro Apps C#中ArrayList的后继者

[英]Successor of ArrayList in Windows 8 Metro Apps C#

我想在我的数组中使用行和列删除方法。 因此,我想将我的数组转换为ArrayList以使用RemoveAt(int index)方法,但在使用.NET 4.5的Windows 8应用程序中,没有ArrayList 你能给我一个建议如何将我的简单int[,]数组转换为另一种类型,它有一个行和列删除方法吗?

您可以使用列表列表:

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

在这种情况下使用锯齿状数组(而不是矩形数组)的优点是能够访问整个行,而无需显式循环遍历值。

已从WinRT中删除ArrayList和所有非泛型集合。 此链接在这里将帮助您更换ArrayList中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM