我有一个列表,其中包含以下项目:
标识
名称
货币
基金
我在此列表中应用分组,如下所示:
var testData = from fl in fundsList
group fl by new { fl.Name } into groupedData
select new
{
groupedData.Key.Name,
};
但这只会在所选数据中仅显示名称。我想要的是在名称的基础上申请分组,并在选择中获取所有项目,即 ID,姓名,货币和基金。我尝试在select中访问其他人,但他们没有Key。
答案 0 :(得分:1)
试试这个:
var testData = fundsList.GroupBy(fl => fl.Name);
现在您将获得IEnumerable<IGrouping<T>>
,其中包含许多键=&gt; valueCollection items。
答案 1 :(得分:1)
var testData = from fl in fundsList
group fl by new { fl.Name } into groupedData
select new
{
GroupName= groupedData.Key.Name,
Items = grp.ToList()
};
答案 2 :(得分:1)
groupedData
使用属于该组的项目实现IEnumerable<YourEntity>
,因此您可以轻松执行以下操作:
var testData = from fl in fundsList
group fl by fl.Name into groupedData
select new
{
Name = groupedData.Key.Name,
Items = grp.ToList()
};
或者基于方法的查询:
var testData = fundsList.GroupBy(fl => fl.Name)
.Select(g => new { Name = g.Key, Items = g.ToList() });
每个项目不包含testData
集合将具有两个属性:
Name
,群组名称Items
包含属于该组的所有项目