我有一个字符串列表:
var list = new List<string> {"apples","peaches", "mango"};
有没有办法在不使用 foreach 循环的情况下遍历列表并在控制台窗口中显示项目可能是使用 lambdas 和委托。
我希望输出如下所示:
以下水果可供选择:
苹果
桃
芒果
您可以使用String.Join
连接所有行:
string lines = string.Join(Environment.NewLine, list);
Console.Write(lines);
到目前为止,最明显的是良好的老式for
循环:
for (var i = 0; i < list.Count; i++)
{
System.Console.WriteLine("{0}", list[i]);
}
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i])
}
我喜欢 linq 的这个特殊方面
list.ForEach(Console.WriteLine);
它本身没有使用 ForEach 循环,因为它使用了 ForEach 演员。但是,嘿,它仍然是一个迭代。
您可以使用List<T>.ForEach
方法,它实际上不是 LINQ 的一部分,但看起来像:
list.ForEach(i => Console.WriteLine(i));
好吧,您可以尝试以下方法:
Debug.WriteLine("The folowing fruits are available:");
list.ForEach(f => Debug.WriteLine(f));
它非常等价于foreach
循环,但不使用foreach
关键字,
foreach
话虽如此,我不知道为什么在遍历对象列表时要避免循环。
迭代 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));