首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C#中,如何从ExpandoObject中删除属性?

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

Stack Overflow用户
提问于 2013-01-24 07:52:45
回答 4查看 31.5K关注 0票数 29

假设我有这个对象:

代码语言:javascript
运行
复制
dynamic foo = new ExpandoObject();
foo.bar = "fizz";
foo.bang = "buzz";

例如,我如何删除foo.bang

我不想简单地将属性的值设置为null--出于我的目的,我需要完全删除它。此外,我意识到我可以通过从第一个kv对中画出一个全新的ExpandoObject,但这将是相当低效的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-24 07:55:25

将扩展转换为IDictionary<string, object>并调用Remove

代码语言:javascript
运行
复制
var dict = (IDictionary<string, object>)foo;
dict.Remove("bang");
票数 53
EN

Stack Overflow用户

发布于 2012-11-26 23:15:23

您可以将ExpandoObject视为IDictionary,然后以这种方式将其删除:

代码语言:javascript
运行
复制
IDictionary<string, object> map = foo;
map.Remove("Jar");
票数 32
EN

Stack Overflow用户

发布于 2013-01-24 07:55:56

MSDN示例:

代码语言:javascript
运行
复制
dynamic employee = new ExpandoObject();
employee.Name = "John Smith";
((IDictionary<String, Object>)employee).Remove("Name");
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14491577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档