假设我有这个对象:
dynamic foo = new ExpandoObject();
foo.bar = "fizz";
foo.bang = "buzz";例如,我如何删除foo.bang?
我不想简单地将属性的值设置为null--出于我的目的,我需要完全删除它。此外,我意识到我可以通过从第一个kv对中画出一个全新的ExpandoObject,但这将是相当低效的。
发布于 2013-01-24 07:55:25
将扩展转换为IDictionary<string, object>并调用Remove
var dict = (IDictionary<string, object>)foo;
dict.Remove("bang");发布于 2012-11-26 23:15:23
您可以将ExpandoObject视为IDictionary,然后以这种方式将其删除:
IDictionary<string, object> map = foo;
map.Remove("Jar");发布于 2013-01-24 07:55:56
MSDN示例:
dynamic employee = new ExpandoObject();
employee.Name = "John Smith";
((IDictionary<String, Object>)employee).Remove("Name");https://stackoverflow.com/questions/14491577
复制相似问题