如何将GroupBy与对象列表一起使用并返回IList <t>?</t>

时间:2012-08-13 08:14:59

标签: c# linq casting group-by

我有一个方法,必须返回一个对象列表,但我不知道怎么做! 我的问题是将groupdResult转换(或者可能)转换为IList。

internal IList<MyClass> MyMethod()
        {
            IList<MyClass> result=new List<MyClass>();

            IList<MyClass> rawData = this.GetRawDatas();

            foreach (MyClass item in rawDatas)
            {
                // do somthings
                MyClass balancedData = new MyClass();  
                if(some conditions)
                {
                  result.Add(balancedData);
                }
            }
            var groupdResult = result.GroupBy(x => x.MyField).ToList();
            return groupdResult;
        }

2 个答案:

答案 0 :(得分:3)

考虑一下:结果要么是组列表,要么是未组合对象列表。我相信你想要的实际上只是一个排序列表:

return result.OrderBy(x => x.MyField).ToList();

答案 1 :(得分:1)

这不是你遇到麻烦的List / IList。这是GroupBy不返回MyClass的事实。

GroupBy返回一个IGrouping,所以行

var groupdResult = result.GroupBy(x => x.MyField).ToList();

返回List&lt; IGrouping&LT; MyClass&gt; &GT;