Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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#_Foreach - Fatal编程技术网

C# 如何在没有计数器的情况下进行计数?

C# 如何在没有计数器的情况下进行计数?,c#,foreach,C#,Foreach,有时,在开发阶段,我需要查看是否为创建的每个元素更改了名称,或者只是想区分数组中不同实例的名称。这种行为严格适用于开发阶段,并且只能在短时间内应用(因此不需要长期解决方案——Q&D很好) 通常,我会以下面的方式介绍计数器,但我突然想到可能有更好的方法。基本上,我希望模拟for的计数器变量的行为,而不实际引入它(留在foreach) int计数器=1; IEnumerable结果=原件。选择(原件 =>新事物{Name=“Hazaa”+计数器+++}); 使用选择的重载 IEnumerable&l

有时,在开发阶段,我需要查看是否为创建的每个元素更改了名称,或者只是想区分数组中不同实例的名称。这种行为严格适用于开发阶段,并且只能在短时间内应用(因此不需要长期解决方案——Q&D很好)

通常,我会以下面的方式介绍计数器,但我突然想到可能有更好的方法。基本上,我希望模拟for的计数器变量的行为,而不实际引入它(留在foreach)

int计数器=1;
IEnumerable结果=原件。选择(原件
=>新事物{Name=“Hazaa”+计数器+++});
使用
选择的重载

IEnumerable<Typo> result = originals.Select((original, counter)
  => new Thingy { Name = "Hazaa" + (counter + 1) });
IEnumerable结果=原件。选择((原件,计数器)
=>新事物{Name=“Hazaa”+(计数器+1});

使用包含索引的重载。您查看了吗?您的标题与问题不匹配。标题谈到的是
foreach
,但是在你的代码中没有
foreach
。@loli:这有几个问题。首先,您必须在列表中搜索循环中的每一项。现在是O(n^2)。第二,如果有重复项,它将不起作用,因为你只能得到第一个匹配项的索引。。。正是我想要的+1表示正确的可能性,但也表示简洁。
IEnumerable<Typo> result = originals.Select((original, counter)
  => new Thingy { Name = "Hazaa" + (counter + 1) });