在System.Collection.Generic.Dictionary上使用Enumerable.Aggregate

bra*_*rad 2 c# linq generics

假设我有一个包含这样数据的通用字典(我希望这里的符号很清楚):

{"param1"=>"value1","param2"=>"value2","param3"=>"value3"}

我正在尝试使用Enumerable.Aggregate函数折叠字典中的每个条目并输出如下内容:

"/ param1 = value1;/param2 = value2;/param3 = value3"

如果我正在汇总列表,这将很容易.随着字典,我被键/值对绊倒了.

Meh*_*ari 8

你不需要Aggregate:

String.Join("; ", 
    dic.Select(x => String.Format("/{0}={1}", x.Key, x.Value)).ToArray())
Run Code Online (Sandbox Code Playgroud)

如果你真的想用它:

dic.Aggregate("", (acc, item) => (acc == "" ? "" : acc + "; ") 
                        + String.Format("/{0}={1}", item.Key, item.Value))
Run Code Online (Sandbox Code Playgroud)

要么:

dic.Aggregate("", 
     (acc, item) => String.Format("{0}; /{1}={2}", acc, item.Key, item.Value), 
     result => result == "" ? "" : result.Substring(2));
Run Code Online (Sandbox Code Playgroud)