日期:2014-05-18  浏览次数:20834 次

Lambda表达式求解!!!!
IEnumerable<string> textSegs =
  from seg in root.Descendants("t")
  select (string)seg;

   
  string str = textSegs.Aggregate(new StringBuilder(),
  (sb, i) => sb.Append(i),
  sp => sp.ToString()
  );
请问 (new StringBuilder(),
  (sb, i) => sb.Append(i),
  sp => sp.ToString()
  );
这是什么意思呢?还有 (sb, i) => sb.Append(i),
  sp => sp.ToString()
这两句一起使用返回的是什么啊?

------解决方案--------------------
(sb, i) => sb.Append(i)
相当于这样一个函数:
StringBuilder foo(StringBuilder sb, string i)
{
return sb.Append(i);
}
------解决方案--------------------
http://msdn.microsoft.com/en-us/library/bb548744.aspx

 说不清楚。。。

 
C# code
string str = textSegs.Aggregate(new StringBuilder(),  //new StringBuilder()是种子  累加器的初始值
  (sb, i) => sb.Append(i), //对每个元素调用的累加器函数
  sp => sp.ToString()  //累加器的最终值转换为结果值   
  );