Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ:从列表中选择项目(按/Select/Sum&;Max!分组)_C#_Linq_Select_Group By - Fatal编程技术网

C# LINQ:从列表中选择项目(按/Select/Sum&;Max!分组)

C# LINQ:从列表中选择项目(按/Select/Sum&;Max!分组),c#,linq,select,group-by,C#,Linq,Select,Group By,我只是在林克周围转转,玩得很开心!有人能帮我查询一下吗: 我有一个数据列表: Key Value Aaa 12 AaA 10 AAa 5 BBB 2 Bbb 1 关键值 Aaa 12 AaA 10 AAa 5 BBB 2 Bbb 1 1.我想按Key.ToUpper()进行分组 2.对于每个组,我需要最大值和总和 3.对于每个组,我都要选择条目 这里有值!=最大(值) 最终结果应该是这样的: Key Max Total AaA 12

我只是在林克周围转转,玩得很开心!有人能帮我查询一下吗:
我有一个数据列表: Key Value Aaa 12 AaA 10 AAa 5 BBB 2 Bbb 1 关键值 Aaa 12 AaA 10 AAa 5 BBB 2 Bbb 1 1.我想按Key.ToUpper()进行分组
2.对于每个组,我需要最大值和总和
3.对于每个组,我都要选择条目 这里有值!=最大(值)
最终结果应该是这样的: Key Max Total AaA 12 27 AAa 12 27 Bbb 2 3 关键最大总数 AaA 12 27 AAa 12 27 Bbb 2 3 谢谢

更新,实际上我还需要来自最大条目的密钥: Key Max Total Correct AaA 12 27 Aaa AAa 12 27 Aaa Bbb 2 3 BBB 键最大总正确 AaA 12 27 AaA AAa 12 27 AAa Bbb 2 3 Bbb

:)

我有点喜欢这个问题,因为所有的小部分(有些很少使用)都需要做出答案


在一个组上执行多个聚合是很简单的,但如果您不知道如何执行,则很有挑战性


此子句接受之前发生的所有事情,并使用目标启动一个新查询。如果没有它,我将不得不开始这样的新查询:

var A = ... select a

var B = from b in A
需要注意的是,
select-into
子句将
kvp
g
从范围中删除


子集合的这个“解包”将我关于b的查询转换为关于a的查询。与默认的Enumerable.SelectMany重载不同,它将父级(
b
)保留在作用域中



比较孩子的财产和父母的财产?令人愉快。重要的是要记住,无论何时,只要你想筛选,就要在哪里破译出
,即使你只是分组(没有
)。

听起来像是作业。或者是面试问题。。。家庭作业通常不涉及“ToUpper”这两个家伙,从我的个人资料中你会看到我已经有点过时了:)也不再是一个真正的专业程序员,只是为了好玩:)Wowsers,快速回答&完美。谢谢!很高兴我能搔痒LINQ不太常用的部分。我认为这个小小的增加会让它变得更加棘手。模糊性来自多行可能具有相同的最大值的可能性。我还想指出,如果给定键的所有行都具有相同的值,则不会返回任何行。
Max = g.Max(kvp => kvp.Value),
Total = g.Sum(kvp => kvp.Value)
select a into b
var A = ... select a

var B = from b in A
  from b in source
  from a in b.A  //SelectMany
where x.Value != ag.Max