如何在不迭代的情况下读取通用列表的数据?

时间:2016-02-28 13:39:17

标签: c# loops foreach

我创建了一个这样的列表:

List<int> list = new List<int>();
list.Add(2);
list.Add(3);
list.Add(7);

现在,如果我想迭代它,我应该这样做:

foreach (int prime in list)
{
    Console.WriteLine(prime);
}

我如何用一条线做到这一点?

2 个答案:

答案 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))