使用ForEach循环迭代列表

时间:2013-03-11 23:08:03

标签: c# lambda

我有一个字符串列表列表:

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

有没有办法遍历列表并在控制台窗口中显示项目而不使用foreach循环可以使用lambdas和delegates。

我想在新行中输出如下所示:

可获得以下成果:
苹果
桃子 芒果

7 个答案:

答案 0 :(得分:14)

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

string lines = string.Join(Environment.NewLine, list);
Console.Write(lines);

答案 1 :(得分:10)

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

for (var i = 0; i < list.Count; i++)
{
    System.Console.WriteLine("{0}", list[i]);
}

答案 2 :(得分:3)

for (int i = 0; i < list.Count; i++)
    {
    Console.WriteLine(list[i])
    }

答案 3 :(得分:3)

我喜欢linq的这个特殊方面

list.ForEach(Console.WriteLine);

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

答案 4 :(得分:1)

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

list.ForEach(i => Console.WriteLine(i));

答案 5 :(得分: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));

答案 6 :(得分:0)

嗯,您可以尝试以下方法:

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

它等同于foreach循环,但不使用foreach关键字,

话虽这么说,我不知道为什么你想在迭代一个对象列表时避免foreach循环。