按列表键分组并查找字典值总和为零的位置

时间:2014-09-23 11:41:11

标签: c# linq

我想用linq编写查询,它通过字典键创建组,并找到组合键值和等于零

  List<Tuple<string, int>> refe = new List<Tuple<string, int>>();
            refe.Add("aa", 100);
            refe.Add("aa", -100);
            refe.Add("bb", 10);
            refe.Add("bb", -10);
            refe.Add("cc", 29);
            refe.Add("dd", 49); 

将结果“aa”,“bb”

1 个答案:

答案 0 :(得分:1)

你是一个幸运的家伙。 ; - )

今天早上我写了这个片段

public static List<T> ToDictionaryCount<T>(this List<Tuple<T, int>> list)
{
    if (list == null)
        throw new ArgumentNullException("list");

    var result = list
        .GroupBy(tuple => tuple.Item1)
        .Where(g => g.Sum(tuple => tuple.Item2) == 0)
        .Select(tuples => tuples.Key)
        .ToList();;

    return result;
}

希望这对你有所帮助。

编辑:感谢詹姆斯的评论; - )