linq 如何将GroupBy用于对象列表并返回IList< T>?

wwtsj6pe  于 2022-12-06  发布在  其他
关注(0)|答案(3)|浏览(113)

我有一个方法,必须返回一个对象列表,但我不知道如何返回!我的问题是将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;
}
busg9geu

busg9geu1#

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

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

eit6fx6z2#

您遇到问题的不是List/IList,而是GroupBy不返回MyClass。
GroupBy会传回IGrouping,因此程式码行

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

返回列表< MyClass >。

w6lpcovy

w6lpcovy3#

不断变化

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

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

解决问题

相关问题