[英]How to read the data of generic list without iterate it?
我創建了一個像這樣的列表:
List<int> list = new List<int>();
list.Add(2);
list.Add(3);
list.Add(7);
現在,如果我想迭代它,我應該這樣做:
foreach (int prime in list)
{
Console.WriteLine(prime);
}
我怎么能用一條線做到這一點?
您可以使用List<T>.ForEach
做到這一點:
list.ForEach(Console.WriteLine);
這采用方法組轉換來創建Action<int>
,以為list
每個元素調用Console.WriteLine(int)
。
但是,就我個人而言,我將使用現有的foreach
循環...可以更清楚地看到,您期望循環的每次迭代都具有副作用。 埃里克·利珀特(Eric Lippert)有一篇很棒的博客文章 ,深入探討了這一哲學異議。
這段代碼是完全安全的 -但更“聰明”,當您閱讀代碼時,這幾乎從來不是一件好事。 問問自己,您一眼就能看懂哪些代碼。
請注意,這並不是按照問題標題“未經迭代”訪問列表中的數據-只是迭代在您的代碼中不明顯。 它肯定仍然存在於ForEach
方法中。
您可以使用ForEach :
list.ForEach(x => Console.WriteLine(x))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.