在C#中,如何从ExpandoObject中删除属性?

参见英文答案 > Dynamically removing a member from Expando /dynamic object                                    
说我有这个对象:

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");
翻译自:https://stackoverflow.com/questions/14491577/in-c-how-do-i-remove-a-property-from-an-expandoobject

转载注明原文:在C#中,如何从ExpandoObject中删除属性?