问题标签 [anonymous-types]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
66221 浏览

c# - 将匿名类型转换为类

我在 List anBook 中有一个匿名类型:

是否可以将其转换为具有以下 clearBook 定义的列表:

通过使用直接转换,即不循环通过 anBook?

0 投票
4 回答
8317 浏览

c# - 如何创建和访问在 C# 中作为参数传递的匿名类的新实例?

我创建了一个函数,它接受一个 SQL 命令并生成输出,然后可以使用该输出来填充类实例列表。代码效果很好。我在这里包含了一个稍微简化的版本,没有异常处理,仅供参考 - 如果您想直接解决问题,请跳过此代码。但是,如果您在这里有建议,我会全力以赴。

正如我所说,这很好用。但是,出于显而易见的原因,我希望能够使用匿名类调用类似的函数。

问题 #1:看来我必须在调用此函数的匿名版本时构造一个匿名类实例- 对吗?一个示例调用是:

问题 #2:我的 ReturnList 函数的匿名版本如下。谁能告诉我为什么对 info.SetValue 的调用什么都不做?它不会返回错误或任何内容,但也不会更改目标字段的值。

有任何想法吗?

注意:当我尝试像在上面的函数中那样使用 FieldInfo 数组时,typeFields 数组的元素为零(即使 objectType 显示了字段名称 - 很奇怪)。因此,我改用 TypeDescriptor.GetProperties。

此处适用于使用反射或匿名类的任何其他提示和指导 - 我对 C# 语言的这个特定角落相对较新。

更新:我必须感谢杰森解决这个问题的关键。下面是修改后的代码,它将创建一个匿名类实例列表,从查询中填充每个实例的字段。

请注意,查询已经构建,并且在之前调用此对象的方法时已初始化参数。原始代码具有内部/外部循环组合,因此用户可以在其匿名类中拥有与字段不匹配的字段。但是,为了简化设计,我决定不允许这样做,而是采用了 Jason 推荐的 db 字段访问。此外,还要感谢 Dave Markle 帮助我更多地了解使用 Activator.CreateObject() 与 GenUninitializedObject 的权衡。

0 投票
2 回答
510 浏览

vb.net - 将现有类型转换为匿名类型并添加新属性

是否可以采用现有类型并从中创建具有附加属性的匿名类型?例如(在 VB 中)

我想要的是第二个对象(n)来克隆 p 的所有属性,然后添加一个新属性(ShoeSize)。

这可能吗?

非常感谢

詹姆士

0 投票
10 回答
4618 浏览

c# - C# 功能请求:在匿名类型上实现接口

我想知道做这样的事情需要什么:

创建的匿名类型如下所示:

编译器有什么理由不能做这样的事情吗?即使对于非 void 方法或带参数的方法,编译器也应该能够从接口声明中推断出类型。

免责声明:虽然我确实意识到这目前是不可能的,并且在这种情况下简单地创建一个具体的类会更有意义,但我对此的理论方面更感兴趣。

0 投票
2 回答
10492 浏览

c# - 使用具有 Linq 匿名类型的 ComboBox 的 SelectedItem 属性

在 C# 3.5 中使用 ComboBox 来显示 LinQ 查询的结果。当 LinQ 查询返回匿名类型时,如何设置 ComboBox 的 SelectedItem 属性?

我按照以下几行设置 ComboBox 的 DataSource:

如果我这样做,我可以通过执行以下操作来选择所选项目:

问题是我想用匿名类型结果填充 ComboBox,例如:

我实际使用的匿名类型比那更复杂,但足以解释。

0 投票
8 回答
100611 浏览

c# - LINQ Select Distinct with Anonymous Types

所以我有一个对象集合。确切的类型并不重要。从中我想提取一对特定属性的所有唯一对,因此:

所以我的问题是:在这种情况下 Distinct 会使用默认对象 equals (这对我来说没用,因为每个对象都是新的)还是可以告诉它做不同的 equals (在这种情况下,Alpha 和 Bravo 的值相等=> 相等的实例)?如果不这样做,有什么方法可以达到这个结果?

0 投票
3 回答
2002 浏览

c# - C#:匿名类型和属性名称

这之间有什么区别吗:

还有这个:

?

0 投票
3 回答
2284 浏览

c# - 如何使用 Func 在 Linq 中指定 .NET 匿名对象返回类型?

如何为匿名对象指定Func签名?

我在 Func 声明中指定为IEnumerable<>的返回类型有问题

我从表达式中得到的错误是

无法将表达式类型“System.Collections.Generic.IEnumerable<{ParentNodeId:int}>”转换为返回类型“System.Collections.Generic.IEnumerable”

如何在 func 中指定IEnumerable<{ParentNodeId:int}> ?

顺便说一句,我可以使用注释代码“查询”并完成它。但是想要更有表现力并在查看这个答案后尝试一些新的东西 为什么 C# 没有词法嵌套函数?

编辑:最终结果

0 投票
6 回答
4440 浏览

c# - .net 数据绑定 - 引用匿名类型属性

我已将 ASP.net GridView 绑定到一组匿名类型。

如何在 RowDataBound 事件处理程序中引用匿名类型的属性之一?

我已经知道像这样强制转换匿名类型的方法:

我想大多数人会说这很混乱,即使它确实有效。在我的真实代码中,我有超过 3 个属性,每当我添加或重新排序匿名类型的属性时,我都必须在两个地方更新代码。

有没有更好的方法来告诉 e.Row.DataItem 它具有特定类型的特定属性并强制对象给我该值(除了创建一个类)?

0 投票
21 回答
395925 浏览

c# - 匿名类的通用列表

在 C# 3.0 中,您可以使用以下语法创建匿名类

有没有办法将这些匿名类添加到通用列表中?

例子:

另一个例子: