C# 将 .Count 与元组项一起使用

标签 c# tuples

我正在尝试比较列表中多个元组的内容。代码运行良好,但在某些情况下,completeList[z].Item1.Count 会返回错误的数字。当我查看调试器时,在一个示例中,a = completeList[z].Item1.Count 可能会在计数为 9 时返回 18。因此这会导致它超出范围。

completeList.CountcompleteList[z].Item1[b] 一样正确返回,所以我不确定我在使用 completeList[z].Item1.Count.

感谢您的任何见解!

int x = completeList.Count;
int y = 0;
while (y < x)
{
 for (int z = 0; z < x; z++)
 {
  if (y != z && completeList[y].Item6.Equals(completeList[z].Item6))
  {
   int a = completeList[z].Item1.Count;
   a = a -1;
   for (int b = 0; b < a; b++)
   {
    if (completeList[y].Item1.Contains(completeList[z].Item1[b]))
    {
     completeList[z].Item1.RemoveAt(b);
     completeList[z].Item2.RemoveAt(b);
     completeList[z].Item3.RemoveAt(b);
     completeList[z].Item4.RemoveAt(b);
     completeList[z].Item5.RemoveAt(b);
    }
   }
  }
 }
 y++;
}

最佳答案

您正在从列表中删除项目。这正在改变计数,并且还在现有项目的索引周围移动。计数在循环开始时是正确的,但当您实际删除一个项目时,计数不再有效。

最有效的解决方案是在删除项目时完全不迭代列表;而是依靠列表的 RemoveAll 方法来删​​除与要删除的项目列表匹配的所有项目。虽然您可以正确管理索引以在迭代时删除,但您应该避免这种复杂性。

关于C# 将 .Count 与元组项一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22641432/

相关文章:

c# - 如何在 ASP.NET Core 3 中解析本地文件路径?

c# - 订购元组列表

python - 我应该使用 `==` 与 `(None, None)` 元组进行比较吗?

python - 如何将元组转换为字典?

c# - 给定的路径格式不支持 c#

c# - 如何在 .Net Core 中读取/写入文件?

c# - 我们应该按什么顺序实现Asp.Net Mvc App

c# - 对于 .NET 3.5 以外的任何项目,不能在 c# 项目中命中断点

python - 如何将值添加到现有字典键 Python

typescript - 如何在 typescript 元组中使用扩展运算符?