【发布时间】:2015-03-03 07:46:19
【问题描述】:
我有一个类数组,类有两个字段:一个字母和一个数字。
我正在寻找一种写作方式:
对于每个包含指定字母的字段,用数字做一些事情。
我知道我可以这样做:
for(int i = 0; i < Array.Length ; i++)
if(Array[i].letter == 'a') do something with Array[i].number
有没有办法使用 foreach 循环写下来,或者这是正确的方法?
编辑:在我的情况下,“做某事”意味着:(我需要在课堂上使用第三个字段,我们称之为测试,输入 bool 和 3 个 int 变量,x = 0 和 y = 0,以及 z = 我之前计算的一些数字)
if(Array[i].letter == 'a')
if(Array[i].test == false)
if(Array[i].number < z) x++;
else y++;
【问题讨论】:
-
如果您能澄清“做某事”,我们会更有帮助。是总和、平均还是排除?
-
您目前的方法有什么问题?这对我来说似乎完全有效
-
在这里使用 foreach 或 for 没有区别。你有什么问题?这似乎完全有效。还想知道您是否有理由不使用 KeyValuePair 列表或字典?
-
您有几种方法可以对集合类型进行操作,从简单的迭代循环、并发、LINQ 等...基本上取决于您要做什么。
-
我想说的是,您可以使用 foreach,但除了可以说是一点点可读性(范围变量)之外,您不会从中获得太多收益。它简洁明了,这是您在这里真正希望的