gpt4 book ai didi

c# - 使用 where 子句查询选择和匿名对象

转载 作者:行者123 更新时间:2023-11-30 20:57:06 25 4
gpt4 key购买 nike

这是我的代码:

var tree = new
{
id = "0",
item = new List<object>()
};

foreach ()
{
tree.item.Add(new
{
id = my_id,
text = my_name,
parent = my_par
});
}

但我想用以下代码替换 foreach 中的代码:

foreach ()
{
tree.item.Where(x => x.id == 2).First().Add(new
{
id = my_id,
text = my_name,
parent = my_par
});
}

如何做到这一点?我得到异常,该类型不包含 id 的定义。

这里的问题是匿名类型。

我尝试创建一个具有 2 个属性的新类:id、text 和 parent,语法有效,但树的定义无效。

所以这里的问题是如何在不添加表示匿名类型的新类的情况下对匿名类型进行查询。

最佳答案

如果您想在不创建新类的情况下执行此操作,您可以使用 dynamic 进行过滤。

tree.item.Where(x => ((dynamic)x).id == 2).First()....

虽然这会给你一个单一的匿名对象而不是一个集合,所以你不能向它添加任何东西。

关于c# - 使用 where 子句查询选择和匿名对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085408/

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