eiu*_*165 8 c# dynamic expandoobject
我想看看C#Expando类中是否存在属性.
很像python中的hasattr函数.我想为hasattr提供c#equalant.
像这样的东西......
if (HasAttr(model, "Id"))
{
# Do something with model.Id
}
Run Code Online (Sandbox Code Playgroud)
vcs*_*nes 21
尝试:
dynamic yourExpando = new ExpandoObject();
if (((IDictionary<string, Object>)yourExpando).ContainsKey("Id"))
{
//Has property...
}
Run Code Online (Sandbox Code Playgroud)
ExpandoObject显式实现IDictionary<string, Object>,其中Key是属性名称.然后,您可以检查字典是否包含密钥.如果您需要经常进行此类检查,您还可以编写一个小助手方法:
private static bool HasAttr(ExpandoObject expando, string key)
{
return ((IDictionary<string, Object>) expando).ContainsKey(key);
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
if (HasAttr(yourExpando, "Id"))
{
//Has property...
}
Run Code Online (Sandbox Code Playgroud)