我是Lambda表达的新手,所以从一小时开始就进行了实验。
我有一个通用列表 - List<KeyValuePair<int, string>>
基本上持有一个键
和一对值。我想用lambda表达式打印列表项。任何人都可以
帮助我使用Lambda表达式翻译以下foreach语句吗?
foreach(KeyValuePair<int, string> kvp in list)
{
Console.WriteLine(kvp.Key.ToString() + " ----> " + kvp.Value.ToString());
}
答案 0 :(得分:2)
通过通用Converter(TInput, TOutput)委托封装LINQ表达式:
Converter<List<KeyValuePair<int, string>>, string> converter = (input) =>
{
return input.Select(i => i.Key + " --> " + i.Value)
.Aggregate((a, n) => a + Environment.NewLine + n);
};
<强>用法强>:
string output = converter(items);
测试数据集:
var items = new List<KeyValuePair<int, string>>
{
new KeyValuePair<int, string>(1, "111"),
new KeyValuePair<int, string>(2, "222"),
new KeyValuePair<int, string>(3, "333"),
};
<强>输出强>:
1 --> 111
2 --> 222
3 --> 333
答案 1 :(得分:1)
很高兴我能够自己解决这个问题:)
list.ForEach(item => Console.WriteLine(item.Key.ToString() + " ----> " + item.Value.ToString()));
list:是您想要遍历的列表的名称
list<string> names=new list<string>{"name1","name2","name3"};
names.ForEach(name=>Console.WriteLine(name)); // write names to the console
console.Readline(); // wait on console until input
答案 2 :(得分:1)
在列表中使用Foreach方法
Array.ForEach(list.ToArray(), kvp=> Console.WriteLine(kvp.Key.ToString()
+ " ----> " + kvp.Value.ToString()));