从 C# 中的动态对象中删除属性及其值

Moh*_*edi 2 c# asp.net object

PHP我们可以使用以下代码从对象中删除一个属性及其值:

$foo->bar = "Something";
unset($foo->bar);
Run Code Online (Sandbox Code Playgroud)

我想用 C# 来做这个。

想象一下该对象是:

var a = new {foo = bar, one = "one"}
Run Code Online (Sandbox Code Playgroud)

我如何foo从对象中删除?

Joh*_* Wu 5

类型是在编译时定义的,因此不会删除属性,c# 中则不然。匿名类型就像您创建的类一样;只是这个名字对你隐藏了。

您最接近的答案是定义一个新类型,忽略您想要删除的属性:

var b = new { one = a.one };
Run Code Online (Sandbox Code Playgroud)