C# Linq聚合提供空值,而不是预期的返回列表

C# Linq聚合提供空值,而不是预期的返回列表,c#,linq,aggregate,C#,Linq,Aggregate,我试图利用linq聚合来模拟reduce行为。我需要GroupingMethod返回数组列表。出于某种原因GroupingMethod无论如何都返回null。谢谢你的帮助 List<Group> groupings = GroupingMethod(new int[] {9,6,9,3,5,3,6,6,3,5,5,1,6,9,8}); static List<Group> GroupingMethod(int[] ValueList) { int

我试图利用linq聚合来模拟reduce行为。我需要
GroupingMethod
返回数组列表。出于某种原因
GroupingMethod
无论如何都返回null。谢谢你的帮助

List<Group> groupings = GroupingMethod(new int[] {9,6,9,3,5,3,6,6,3,5,5,1,6,9,8});

static List<Group> GroupingMethod(int[] ValueList)
    {
        int groupTotal = 0;
        Group newGroup = new Group();
        var put = ValueList.Aggregate(new List<Group>(), (acc, x) =>
        {
            List<Group> polp = acc;
            groupTotal = groupTotal + x;
            if (groupTotal < 10)
            {
                newGroup.AddInt(x);
            } else
            {
                polp.Add(newGroup);
                newGroup.Clear();
                groupTotal = 0;
            }
            return polp;
        });
        return put;
    }


class Group
{
    List<int> iGrouping = new List<int>();
    public Group(int AddInt)
    {
        iGrouping.Add(AddInt);
    }
    public Group()
{

}
    public void AddInt(int IntToAdd)
    {
        iGrouping.Add(IntToAdd);
    }
    public void Clear()
    {
        iGrouping.Clear();
    }
public int CombinedGroupValue { get{return iGrouping.Sum();}}          
}
List groupings=GroupingMethod(新的int[]{9,6,9,3,5,6,6,3,5,5,1,6,9,8});
静态列表分组方法(int[]ValueList)
{
int groupTotal=0;
组newGroup=新组();
var put=ValueList.Aggregate(新列表(),(acc,x)=>
{
列表polp=acc;
groupTotal=groupTotal+x;
如果(组总数<10)
{
新组。添加(x);
}否则
{
polp.Add(新集团);
newGroup.Clear();
groupTotal=0;
}
返回polp;
});
回售;
}
班级
{
列表i分组=新列表();
公共组(内部附加)
{
i分组。添加(附加项);
}
公共组()
{
}
公共无效附加项(int IntToAdd)
{
i分组。添加(IntToAdd);
}
公共空间清除()
{
iGrouping.Clear();
}
public int CombinedGroupValue{get{return iGrouping.Sum();}
}

您还没有显示您的
分组方法的结尾,这让您很难提供帮助。(您已经声明了
put
变量,但我们没有看到任何从
GroupingMethod
返回的内容)请提供一个格式,您希望自己如何查看代码,以便您将我们置于尽可能帮助您的最佳位置。@JonSkeet我更正了它,谢谢。您确定
GroupingMethod
返回空值吗?还是返回空列表?我刚刚尝试了您发布的代码,但它不返回null。它返回一个包含6个元素的列表。同样,请提供一个答案。如果您的问题实际上说明了您的意思,那么这也会有所帮助-我假设您需要一个
列表
,而不是数组的
列表,因为这是您的代码所说的。此外,LINQ并不是对所有问题都有用,也不是更快,如果您的
聚合体那么大,您应该只使用
for
foreach