gpt4 book ai didi

c# - LINQ Lambda,使用列表分组

转载 作者:太空狗 更新时间:2023-10-29 18:22:41 27 4
gpt4 key购买 nike

我在寻找正确的语法来完成以下操作时遇到了一些麻烦:

是否可以使用 LINQ(Lambda 表达式)到 .GroupBy 数据而不是使用通常的 .Sum() 或 .Count() 我希望结果数据是一个 Int 列表。

我定义了自己的类:Filter_IDs。它的构造函数需要两个参数:

public int? type; // Represents the object_type column from my database
public List<int?> objects; // Represents the object_id column from my database

我想从我的数据库中将数据加载到这个对象中。以下 LINQ 查询应生成 Filter_ID 列表:

以下 LINQ 查询应生成 Filter_ID 列表:

List<Filter_IDs> filterids = ef.filterLine
.GroupBy(fl => fl.objectType)
.Select(fl => new Filter_IDs { type = fl.Key, objects = fl.Select(x => x.object_id).ToList() })
.ToList();

使用此查询不会出现构建错误,但会在运行时出现“NotSupportedException”。

为了让您更好地理解数据,数据库看起来像这样:

http://d.pr/i/mnhq+ (下拉图像)

提前致谢,格本

最佳答案

我认为问题在于数据库无法在选择中调用 ToList,也无法创建新的 Filter_ID。

尝试这样的事情:

List<Filter_IDs> filterids = ef.filterLine.Select(o => new { objectType = o.objectType, object_id=o.object_id})
.GroupBy(fl => fl.objectType).ToList()
.Select(fl => new Filter_IDs { type = fl.Key, objects = fl.Select(x => x.object_id).ToList() })
.ToList();

关于c# - LINQ Lambda,使用列表分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13745904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com