gpt4 book ai didi

C# List RemoveAt(int32) 函数删除 2d List 中每个 List 的所有索引,而不是仅删除指定列表

转载 作者:行者123 更新时间:2023-12-03 03:02:02 26 4
gpt4 key购买 nike

如标题所示...

  • 我有一个二维列表
  • 该列表包含 9 个其他列表,其中包含整数 1 - 9
List<List<int>> empty_cells;
List<int> row = new List<int> {0,1,2,3,4,5,6,7,8}
for (int i = 0; i <=8 ; i++)
{
empty_cells.Add(row)
}
  • 我想从选定的子列表中删除一个元素
empty_cells[sublist_index].RemoveAt(index_to_remove)

此代码会从父列表 empty_cells所有子列表中删除 index_to_remove 处的项目。使所有子列表比以前短一个元素

两个问题

A.为什么会发生这种情况?

B.我怎样才能实现我想要做的事情?

最佳答案

将您的流程更改为此,使用 ToList()

List<List<int>> empty_cells;
List<int> row = new List<int> {0,1,2,3,4,5,6,7,8}
for (int i = 0; i <=8 ; i++)
{
empty_cells.Add(row.ToList());
}

ToList() 方法将值复制到要设置的变量,而不是将两个变量的引用设置为相同的数据。

关于C# List<T> RemoveAt(int32) 函数删除 2d List 中每个 List 的所有索引,而不是仅删除指定列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59570840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com