7

我有一个字符串列表:

var list = new List<string> {"apples","peaches", "mango"};

有没有办法在不使用 foreach 循环的情况下遍历列表并在控制台窗口中显示项目可能是使用 lambdas 和委托。

我希望输出如下所示:

以下水果可供选择:
苹果

芒果

4

7 回答 7

19

您可以使用String.Join连接所有行:

string lines = string.Join(Environment.NewLine, list);
Console.Write(lines);
于 2013-03-11T23:12:16.373 回答
11

到目前为止,最明显的是良好的老式for循环:

for (var i = 0; i < list.Count; i++)
{
    System.Console.WriteLine("{0}", list[i]);
}
于 2013-03-11T23:10:48.943 回答
3
for (int i = 0; i < list.Count; i++)
    {
    Console.WriteLine(list[i])
    }
于 2013-03-11T23:11:09.907 回答
3

我喜欢 linq 的这个特殊方面

list.ForEach(Console.WriteLine);

它本身没有使用 ForEach 循环,因为它使用了 ForEach 演员。但是,嘿,它仍然是一个迭代。

于 2013-03-11T23:12:46.013 回答
1

您可以使用List<T>.ForEach方法,它实际上不是 LINQ 的一部分,但看起来像:

list.ForEach(i => Console.WriteLine(i));
于 2013-03-11T23:13:00.463 回答
1

好吧,您可以尝试以下方法:

Debug.WriteLine("The folowing fruits are available:");
list.ForEach(f => Debug.WriteLine(f));

它非常等价于foreach循环,但不使用foreach关键字,

foreach话虽如此,我不知道为什么在遍历对象列表时要避免循环。

于 2013-03-11T23:13:54.067 回答
1

迭代 List 的三种方法:

//1 METHOD
foreach (var item in myList)
{
    Console.WriteLine("Id is {0}, and description is {1}", item.id, item.description);
}

//2 METHOD   
for (int i = 0; i<myList.Count; i++)
{ 
    Console.WriteLine("Id is {0}, and description is {1}", myList[i].id, myMoney[i].description);
}

//3 METHOD lamda style
myList.ForEach(item => Console.WriteLine("id is {0}, and description is {1}", item.id, item.description));
于 2016-09-22T10:07:08.147 回答