Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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# 4.0 分组一个IEnumerable<;IEnumerable<;int>&燃气轮机;_C# 4.0_Lambda - Fatal编程技术网

C# 4.0 分组一个IEnumerable<;IEnumerable<;int>&燃气轮机;

C# 4.0 分组一个IEnumerable<;IEnumerable<;int>&燃气轮机;,c#-4.0,lambda,C# 4.0,Lambda,我有一个对象是IEnumerable>。数据集看起来像 {{ 1 , 1 }, { 1 , 2 }, { 1 , 3 }, { 1 , 4 }, {1,2}} 我需要得到一个结果集,该结果集对公共集进行分组,并对该集合的总行数求和 我尝试了如下GroupBy方法: var aggregate = sorted.GroupBy(rolls => rolls, rolls => rolls); 但是它没有对任何对象进行分组,而且我在rolls对象中找不到要分组的字段,所以我唯一的选择就

我有一个对象是IEnumerable>。数据集看起来像 {{ 1 , 1 }, { 1 , 2 }, { 1 , 3 }, { 1 , 4 }, {1,2}}

我需要得到一个结果集,该结果集对公共集进行分组,并对该集合的总行数求和

我尝试了如下GroupBy方法:

var aggregate = sorted.GroupBy(rolls => rolls, rolls => rolls);

但是它没有对任何对象进行分组,而且我在rolls对象中找不到要分组的字段,所以我唯一的选择就是整个对象本身。如何执行此操作?

您可以传递到
GroupBy
custom
IEqualityComparer
,它实现了sequence equals,因此GroupBy将威胁{1,2}和{1,2}相同。但如果您知道,当您可以使用匿名类型及其equals实现时,您的rolls只有2个元素:

var sorted = new[] { new[] { 1, 2 }, new[] { 1, 2 }, new[] { 1, 3 }, new[] { 2, 2 } };
var grouped = sorted.GroupBy(roll => new { r0 = roll[0], r1 = roll[1] });
var backToArrays = grouped.Select(g => new[] { g.Key.r0, g.Key.r1 });

此代码将生成{1,2},{1,3},{2,2}。这是您需要的吗?

您可以传递到
GroupBy
custom
IEqualityComparer
,它实现了sequence equals,因此GroupBy将威胁{1,2}和{1,2}相同。但如果您知道,当您可以使用匿名类型及其equals实现时,您的rolls只有2个元素:

var sorted = new[] { new[] { 1, 2 }, new[] { 1, 2 }, new[] { 1, 3 }, new[] { 2, 2 } };
var grouped = sorted.GroupBy(roll => new { r0 = roll[0], r1 = roll[1] });
var backToArrays = grouped.Select(g => new[] { g.Key.r0, g.Key.r1 });

此代码将生成{1,2},{1,3},{2,2}。这就是你需要的吗?

你所说的公共集是什么意思?相同的总数2-4和3-3,或者2-4,4-2将是一个组?相同的数字,所以{1,2}和{1,2,}将是组,而不是{2,4}和{3,3}。我已经对结果进行了排序,所以我将永远不会有{2,1},我将永远有{1,2}。你所说的公共集是什么意思?相同的总数2-4和3-3,或者2-4,4-2将是一个组?相同的数字,所以{1,2}和{1,2,}将是组,而不是{2,4}和{3,3}。我已经对结果进行了排序,所以我永远不会有{2,1},我将永远有{1,2}。是的,除非我有2到20之间的任意数量的元素。是的,除非我有2到20之间的任意数量的元素。