.net Expando 对象和 LINQ。可能还是不可能?
我有一个简单的扩展对象列表,称为产品。
我在运行时向这些对象添加各种字段(例如颜色或大小)
如何基于动态字段在此列表上编写 LINQ 查询?
使用经典的对象列表,我可以编写这样的 LINQ 查询:
From item in Products Where item.color="red" select item
但是使用 Expandos,如何实现这一点,知道我事先不知道字段的名称(可能是重量的大小或其他任何内容) ?
先感谢您。
I have a simple list of expando objects called products.
i add various fields to these objects at runtime ( for example color or size)
How can i write a LINQ query on this list based on dynamic fields ?
With a classic list of objects i could write a LINQ query like this :
From item in Products Where item.color="red" select item
but with expandos , how this can be achieved , knowing that i don't know in advance the name of the fields (it could be size of weight or anything else ) ?
Thank you in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Expando 对象实现 IDictionary(Of String, Object)
因此,您可以将其转换为 IDictionary 并通过传递字符串来访问它的属性。
The expando object implements IDictionary(Of String, Object)
Thus you could cast it to an IDictionary and access it's properties by passing a string.
你可以这样写你的代码:
从产品中的项目(项目为动态).color="red" 选择项目
You can write your code like this:
From item in Products Where (item as dynamic).color="red" select item