链表c#的数组

时间:2013-06-03 15:41:10

标签: c# linked-list

我在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]。怎么办?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您无法从阵列中“删除”。

您可以尝试使用Linq:

按索引过滤掉
Arraylinked = Arraylinked
    .Where((idx, item) => idx != 2)
    .ToArray();

然而,这会产生创建全新阵列的成本。