I would like to see if a property exist in a C# Expando Class.
much like the hasattr function in python. I would like the c# equalant for hasattr.
something like this...
if (HasAttr(model, "Id"))
{
# Do something with model.Id
}
You can use the Enumerable. Where extension method: var matches = myList. Where(p => p.Name == nameToExtract);
You can use this to see if a member is defined: var expandoObject = ...; if(((IDictionary<String, object>)expandoObject). ContainsKey("SomeMember")) { // expandoObject. SomeMember exists. }
Try:
dynamic yourExpando = new ExpandoObject();
if (((IDictionary<string, Object>)yourExpando).ContainsKey("Id"))
{
//Has property...
}
An ExpandoObject explicitly implements IDictionary<string, Object>
, where the Key is a property name. You can then check to see if the dictionary contains the key. You can also write a little helper method if you need to do this kind of check often:
private static bool HasAttr(ExpandoObject expando, string key)
{
return ((IDictionary<string, Object>) expando).ContainsKey(key);
}
And use it like so:
if (HasAttr(yourExpando, "Id"))
{
//Has property...
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With