如何更改列表的列表项
本文关键字:列表 何更改 | 更新日期: 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());