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

一个list的算法问题。
我有一个list ,里面存的值是 Name|value,比如 中山一路|42,中山二路|34,五山路|35,五山路|56,。。。这里面有Name一样的情况。我现在要做的是把Name一样的,value值相加,留一个值。 怎么写这个算法呢?求赐教。


------解决方案--------------------
C# code

var list=new List<string>{"中山一路|42","中山二路|34","五山路|35","五山路|56"};
    var result=list.GroupBy(l=>l.Split('|')[0])
                   .Select(g=>g.Key+"|"+g.Sum(m=>int.Parse(m.Split('|')[1])))
                   .ToList();