日期:2014-05-20  浏览次数:20715 次

求不同num的和
有两个数,一个是num(1,1,2,3,4,6,6,7,7,7,8,10....)
一个是N_value对应的值(10,10,13,15,20,40,40,100,100,100,90,95...)


怎么使用linq求不同num的N_value的和

distinct??那我只能求出num,和我就不知道怎么写了,求各位大神指点!

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

void Main()
{
    int[] num = new int[] { 1, 1, 2, 3, 4, 6, 6, 7, 7, 7, 8, 10 };
    int[] N_value = new int[] { 10, 10, 13, 15, 20, 40, 40, 100, 100, 100, 90, 95 };
    var query=(from n in num.Select((x,index)=>new{x,index})
              join v in N_value.Select((x,index)=>new{x,index})
              on n.index equals v.index 
              select new{n.x,v=v.x}).GroupBy(x=>x.x).Select(g=>new{g.Key,s=g.Sum(x=>x.v)});
    query.ToList().ForEach(q=>Console.WriteLine("{0}\t{1}",q.Key,q.s));
    /*
    1    20
    2    13
    3    15
    4    20
    6    80
    7    300
    8    90
    10    95
    */
}