在C#中,如何从ExpandoObject中删除属性?
说我有这个对象:
dynamic foo = new ExpandoObject(); foo.bar = "fizz"; foo.bang = "buzz";
我如何删除foo.bang
?
我不想简单地将属性的值设置为null – 为了我的目的,我需要完全删除它。 此外,我意识到我可以通过从第一个绘制kv对来创建一个全新的ExpandoObject,但这将是非常低效的。
将expando转换为IDictionary
并调用Remove
:
var dict = (IDictionary)foo; dict.Remove("bang");
您可以将ExpandoObject
视为IDictionary
,然后将其删除:
IDictionary map = foo; map.Remove("Jar");
MSDN示例:
dynamic employee = new ExpandoObject(); employee.Name = "John Smith"; ((IDictionary)employee).Remove("Name");
您可以将其IDictionary
为IDictionary
,然后使用显式的Remove方法。
IDictionary temp = foo; temp.Remove("bang");