我在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]。怎么办?
答案 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();
然而,这会产生创建全新阵列的成本。