在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");
- 问题设置DataGridView的DataSource
- Selenium WebDriver C#完整网站截图使用ChromeDriver和FirefoxDriver
- Visual Studio C# – 找不到SQLite.Interop.dll
- Lucene.NET通过NHibernate.Search和POCO实体
- Visual Studio 2010:如何引用具有第三方依赖性的C#.Net类库项目
- 全局低级键盘钩冻结在c#.net 3.5中
- Bot Framework无法使用AddKeyboardCard或使用ChannelData发送FacebookQuickReply
- 保存应用程序首选项…注册表/文件
- 确定Equals()是否为覆盖?