Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更改列表中的列表项_C#_List - Fatal编程技术网

C# 如何更改列表中的列表项

C# 如何更改列表中的列表项,c#,list,C#,List,我想改变列表中的项目,它们也是列表 我试过: for (int i = pChain.Count -1; i> 0; i --) { List<String> item = pChain[i]; item = item.RemoveSequentialRepeats().ToList(); } 当我跟踪代码时,函数会更改列表并删除连续的重复项,但它不会存储在主列表pChain中。我做错什么了吗?在您的示例中,RemoveSequentialReapeats似乎

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

我试过:

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

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

在您的示例中,RemoveSequentialReapeats似乎没有编辑列表,而是创建了一个新列表。所以,您正在为该项指定一个新值,而pChain不会更新并保留原始列表。你应该做的是添加行

pChain[i] = item;

在您的示例中,RemoveSequentialReapeats似乎不编辑列表,而是创建一个新列表。所以,您正在为该项指定一个新值,而pChain不会更新并保留原始列表。你应该做的是添加行

pChain[i] = item;

要解决此问题,您必须将
Linq
语句的结果分配回
pChain

pChain[i] = item;
代码甚至可以简化为一行代码

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

要解决此问题,您必须将
Linq
语句的结果分配回
pChain

pChain[i] = item;
代码甚至可以简化为一行代码

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

它给出了从列表到列表的转换错误缺少大括号,现已修复。它给出了从列表到列表的转换错误缺少大括号,现已修复。
pChain[i]=pChain[i]。RemoveSequentialRepeats().ToList()-重新分配更改的项目
pChain[i]=pChain[i]。RemoveSequentialRepeats().ToList()-重新分配更改的项目