簡體   English   中英

如何不遍歷泛型列表讀取數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM