c# – 是否可以使用ExpandoObject创建运行时属性?

前端之家收集整理的这篇文章主要介绍了c# – 是否可以使用ExpandoObject创建运行时属性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
通常,我们可以创建这样的属性,
dynamic expando = new ExpandoObject();
expando.Price = 45k;
expando.Value = "Good";

在我的情况下,直到运行时我才会知道诸如“价格”或“价值”之类的属性.如何,我可以创建这样的动态属性.就像是,

dynamic expando = new ExpandoObject();
expando[properties[0]] = 45k;
expando[properties[1]] = "Good";
expando[properties[2]] = "Red";
expando[properties[3]] = 8;

无论如何要实现这种行为.

解决方法

只需使用它实现IDictionary< string,Object>的事实:
IDictionary<string,Object> expando = new ExpandoObject();
expando[properties[0]] = 45;
expando[properties[1]] = "Good";
expando[properties[2]] = "Red";
expando[properties[3]] = 8;

dynamic d = expando;
// Now use the properties as normal

另一方面,如果你在执行时间之前不知道属性,实际上会消耗它们的是什么?使用ExpandoObject可能仍然有意义 – 但同样可以使用Dictionary< string,object>首先.

原文链接:https://www.f2er.com/csharp/98312.html

猜你在找的C#相关文章