我创建了一个这样的列表:
List<int> list = new List<int>();
list.Add(2);
list.Add(3);
list.Add(7);
现在,如果我想迭代它,我应该这样做:
foreach (int prime in list)
{
Console.WriteLine(prime);
}
我如何用一条线做到这一点?
答案 0 :(得分:3)
您可以使用List<T>.ForEach
:
pAnd
使用方法组转换为list.ForEach(Console.WriteLine);
的每个元素创建Action<int>
来调用Console.WriteLine(int)
。
但是,我个人会使用现有的list
循环...这样可以更清楚地表明您对循环的每次迭代都有期望副作用。 Eric Lippert有一个great blog post详细讨论了这个哲学上的反对意见。
此代码完全安全 - 但更多&#34;聪明&#34;,当您阅读代码时,这几乎不是一件好事。问问自己哪些代码更容易理解一目了然。
请注意,这不是访问列表中的数据而不是迭代它&#34;根据问题标题 - 只是在你的代码中迭代并不明显。它当然仍然存在于foreach
方法中。
答案 1 :(得分:0)
您可以使用ForEach:
list.ForEach(x => Console.WriteLine(x))