如何更改列表的列表项

本文关键字:列表 何更改 | 更新日期: 2023-09-27 18:34:06

我想更改列表中的项目,它们也是列表。

我试过了:

for (int i = pChain.Count -1; i> 0; i --)
{
    List<String> item = pChain[i];
    item = item.RemoveSequentialRepeats().ToList();
}

其中RemoveSequentialRepeats是一个静态函数,如下所示:

public static IEnumerable<T> RemoveSequentialRepeats<T>(
     this IEnumerable<T> source) ....

当我跟踪代码时,该函数会更改列表并删除连续重复的项目,但它不会存储在主列表中pChain。我做错了什么吗?

如何更改列表的列表项

从您的示例中,似乎 删除顺序回收 不会编辑列表,而是创建一个新列表。因此,您正在为项目分配一个新值,而 pChain 不会更新并保留原始列表。你应该做的是添加行

pChain[i] = item;

要解决此问题,您必须将Linq语句中的结果赋回给pChain

pChain[i] = item;
代码

甚至可以简化,使其成为一个行代码。

pChain = pChain.Select(li=> li.Select(item=>item.RemoveSequentialRepeats()).ToList());