当前位置: 首页 > 知识库问答 >
问题:

如何选择不在groupby中的属性

刘昌翰
2023-03-14

我正在尝试选择一些不在我的分组依据中的属性。这可能吗?

var r = from w in drinks.ToList()
  group w by new{
   w.DrinkId
  } into wGroup
  select new DrinksValue(){
   DrinkId = wGroup.DrinkId,
   CatId = // trying to pull from wGroup???
   Lasting = // trying to pull from wGroup???
   DrinkTypes = wGroup.Select( x => new DrinkAttributes { Taste = wGroup.Key.Flavor, Benefit = wGroup.Sum(x => x.Value)
  }).ToList()
};

如何从drinks.tolist()中获取CatId和持久属性?

如果我将它们添加到组中,就像w.drinkid、w.flavor、w.value、w.catid、w.lenerate,那么我的结果就会混乱。

我可以使用.sum获得其他属性,如value,但这些属性不是计算值。

数据示例:

DrinkId | CatId | Lasting | Flavor | Value
------------------------------------------
1     2        5.1      orange   11.0
1     2        5.1      blue     09.0
1     2        6.0      red      10.0
2     3        6.0      red      10.0
2     3        6.0      yellow   01.0

希望将结果按如下方式分组:

{
  "DrinkId": 1,
  "CatId": 2,
  "Lasting": 5.1,
  "DrinkTypes": [{ Taste: orange,  Benefit: 11.0}, {Taste: blue,  Benefit: 09.0}, {Taste: red,  Benefit: 10.0}]
}

共有2个答案

弓明亮
2023-03-14

通过将这些属性包含在groupby中,您应该能够获得所需的结果,至少您的示例数据显示的DrinkId、CatId和Deneral的值总是相同的。

var r = from w in drinks
  group w by new{
   w.DrinkId,
   w.CatId,
   w.Lasting
  } into wGroup
  select new DrinksValue(){
   DrinkId = wGroup.DrinkId,
   CatId =  wGroup.CatId
   Lasting = wGroup.Lasting,
   DrinkTypes = wGroup.Select( x => new DrinkAttributes { Taste = wGroup.Key.Flavor, Benefit = wGroup.Sum(x => x.Value)}).ToList()
};
昌勇锐
2023-03-14

此查询应起作用:

var query = 
    from w in drinks
    group w by new { w.DrinkId, w.CatId, w.Lasting } into wGroup
    select new DrinksValue
    {
        DrinkId = wGroup.Key.DrinkId,
        CatId = wGroup.Key.CatId,
        Lasting = wGroup.Key.Lasting,
        DrinkTypes = wGroup.Select(x => new DrinkAttributes 
            { Taste = x.Flavor, Benefit = x.Value }
            ).ToList()          
    }
};

var r = query.ToList()
 类似资料:
  • 问题内容: 我有这样的HTML, 现在,我需要编写一个jQuery,它将我的html中的所有属性都设为disable_onclick属性设置为true。在这种情况下,我应该获得3个元素,两个链接标签和一个输入标签。 问题答案: 这里的如何选择所有这些元素: 由于是CSS中有效的未加引号的属性值,因此您甚至可以省略引号: 如果您关心有效的HTML,则应考虑改用自定义属性。 这样,它就是有效的HTML

  • 我有以下物品清单: 我想像这样选择不同的帐户: 我尝试过使用角度过滤器方法: 但是,它返回与输入相同的列表。谁能告诉我我做错了什么?

  • 我正在尝试(可能有点鲁莽)在CSS中重现Douglas Crockford所说的底部值。 什么是底值? 在Javascript中,底部值为和。 我可以使用自定义数据属性: 并且我可以给它一个null值(使用Unicode): 在CSS中,我可以引用任何为空的自定义数据属性: 接下来,我要部署一个与此JavaScript相当的: 但我似乎不能引用任何非空的自定义数据,因为如下所示: 无效且无效。 已

  • 问题内容: 我使用的选择标记的格式允许多次选择,但我希望选择的最大数量为10。使用JavaScript或jquery是否可以? 提前致谢! 问题答案: 这是供您使用的一些完整代码…一定要喜欢Google AJAX API Playground :-) 编辑1: 注意:这只允许您选择5,因为我不想复制/粘贴另外10个选项:-) ​

  • 问题内容: 我的网页中有3个单选按钮,如下所示: 在jQuery中,我想在单击这三个按钮中的任何一个时获取所选单选按钮的值。在jQuery中,我们有id(#)和class(。)选择器,但是如果我想按名称查找单选按钮,该怎么办呢? 请告诉我如何解决这个问题。 问题答案: 应该做到这一点,所有这些都在文档中,该文档具有与此类似的示例: 我还应该注意,您在该代码段中有多个相同的ID。这是无效的HTML。