generic - En C#, ¿cómo elimino una propiedad de un ExpandoObject?
get data object c# (4)
Di que tengo este objeto:
dynamic foo = new ExpandoObject();
foo.bar = "fizz";
foo.bang = "buzz";
¿Cómo eliminaría foo.bang
por ejemplo?
No quiero simplemente establecer el valor de la propiedad en nulo; para mis propósitos, necesito eliminarlo por completo. Además, me doy cuenta de que podría crear un ExpandoObject completamente nuevo dibujando kv pares desde el principio, pero eso sería bastante ineficiente.
Convierta el expando a IDictionary<string, object>
y llame a Remove
:
var dict = (IDictionary<string, object>)foo;
dict.Remove("bang");
Ejemplo de MSDN:
dynamic employee = new ExpandoObject();
employee.Name = "John Smith";
((IDictionary<String, Object>)employee).Remove("Name");
Puede convertirlo como un IDictionary<string,object>
, y luego usar el método de Remove explícito.
IDictionary<string,object> temp = foo;
temp.Remove("bang");
Puede tratar el ExpandoObject
como un IDictionary<string, object>
y luego eliminarlo de esa manera:
IDictionary<string, object> map = foo;
map.Remove("Jar");