-2

我在 C# 中声明了一个链表数组,现在我想删除索引 i 中不等于第一个或最后一个的元素。我该怎么做???

LinkedList<DataTable>[] Arraylinked= new LinkedList<DataTable[1000];                       
Arraylinked[0].AddLast(data table11);                 
Arraylinked[1].AddLast(data table12);
Arraylinked[2].AddLast(data table13);
Arraylinked[3].AddLast(data table14);

现在,我想在我的 arraylinkedlist 中删除 Arraylinked[2]。怎么可以???

4

2 回答 2

0
DataTable node = Arraylinked.First;
int index = 0;
while (node != null) {
    DataTable nextNode = node.Next;
    if (index == 2) {
        Arraylinked.Remove(node);
    }
    node = nextNode;
    index++;
}

或者您可以使用具有不同条件的相同代码在不知道索引的情况下通过其引用删除项目。

于 2013-06-03T15:44:38.613 回答
0

您不能从数组中“删除”。

您可以尝试使用 Linq 按索引过滤:

Arraylinked = Arraylinked
    .Where((idx, item) => idx != 2)
    .ToArray();

但是,这会产生创建全新阵列的成本。

于 2013-06-03T15:46:26.637 回答