.net – Linq将复杂类型聚合成字符串
发布时间:2020-12-14 04:33:02 所属栏目:百科 来源:网络整理
导读:我看到了.net聚合函数的简单例子如下: string[] words = { "one","two","three" };var res = words.Aggregate((current,next) = current + "," + next);Console.WriteLine(res); 如果您想聚合更复杂的类型,那么如何使用“聚合”功能? 例如:一个具有2个属
我看到了.net聚合函数的简单例子如下:
string[] words = { "one","two","three" }; var res = words.Aggregate((current,next) => current + "," + next); Console.WriteLine(res); 如果您想聚合更复杂的类型,那么如何使用“聚合”功能? "MyAge: 33,MyHeight: 1.75,MyWeight:90"
你有两个选择:
>项目到一个字符串然后聚合: var values = new[] { new { Key = "MyAge",Value = 33.0 },new { Key = "MyHeight",Value = 1.75 },new { Key = "MyWeight",Value = 90.0 } }; var res1 = values.Select(x => string.Format("{0}:{1}",x.Key,x.Value)) .Aggregate((current," + next); Console.WriteLine(res1); 这具有使用第一个字符串元素作为种子(没有前缀“,”)的优点,但是将消耗更多的内存用于在进程中创建的字符串。 var res2 = values.Aggregate(new StringBuilder(),(current,next) => current.AppendFormat(",{0}:{1}",next.Key,next.Value),sb => sb.Length > 2 ? sb.Remove(0,2).ToString() : ""); Console.WriteLine(res2); 第二个代理将我们的StringBuilder转换成一个字符串,使用条件来修剪起始的“,”。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |