我是C#的初学者。我有这样的字典:
{
{"tom", "student"},
{"rob", "teacher"},
{"david", "lawyer"}
}
我想形成这一行:
tom = student, rob = teacher, david = lawyer
我想使用dictionary<>
的聚合扩展方法,但当我这样做时:
Console.WriteLine(dic.Aggregate((a,b) => (a.Key + " = " + a.Value + ", " + b.Key + " = " + b.Value)));
我收到此错误:
无法将lambda表达式转换为委托类型。
所以看来我做错了。那么有人能告诉我如何使用这种方法吗?
答案 0 :(得分:16)
Aggregate不是Dictionary的方法,它是IEnumerable<T>
的扩展方法。如果要构建聚合字符串:
dic.Aggregate(new StringBuilder(),
(sb, kvp) => sb.AppendFormat("{0}{1} = {2}",
sb.Length > 0 ? ", " : "", kvp.Key, kvp.Value),
sb => sb.ToString());
说明:
顺便说一句,您可以使用以下代码来构建所需的字符串:
String.Join(", ", dic.Select(kvp => kvp.Key + " = " + kvp.Value));