说我有这样的对象:
dynamic foo = new ExpandoObject();
foo.bar = "fizz";
foo.bang = "buzz";
我将如何删除foo.bang
的例子吗?
我不想简单地把属性的值设置为null - 我的目的,我需要完全删除。 另外,我意识到,我可以创建通过从第一绘制KV对一个全新的ExpandoObject,但是这将是非常低效。
说我有这样的对象:
dynamic foo = new ExpandoObject();
foo.bar = "fizz";
foo.bang = "buzz";
我将如何删除foo.bang
的例子吗?
我不想简单地把属性的值设置为null - 我的目的,我需要完全删除。 另外,我意识到,我可以创建通过从第一绘制KV对一个全新的ExpandoObject,但是这将是非常低效。
铸的expando到IDictionary<string, object>
并调用Remove
:
var dict = (IDictionary<string, object>)foo;
dict.Remove("bang");
你可以把该ExpandoObject
作为IDictionary<string, object>
代替,然后将其删除这种方式:
IDictionary<string, object> map = foo;
map.Remove("Jar");
MSDN实施例:
dynamic employee = new ExpandoObject();
employee.Name = "John Smith";
((IDictionary<String, Object>)employee).Remove("Name");
可以将它转换为一个IDictionary<string,object>
,然后使用显式删除方法。
IDictionary<string,object> temp = foo;
temp.Remove("bang");