如何从作为字典的对象中获取特定值
本文关键字:获取 对象 字典 | 更新日期: 2023-09-27 18:33:23
我将用一个例子来展示我的问题:
ChromeDriver chrome = new ChromeDriver();
chrome.Capabilities.GetCapability("chrome");
返回类型为 Dictionary<string, object>
的对象。在这个对象中有一个键userDataDir
我需要它的值。
我是否必须首先将对象转换为字典,或者我可以做一些单行,例如:
chrome.Capabilities.GetCapability("chrome").GetType().GetProperty("userDataDir").GetValue()
上面的行不仅仅是为了澄清而编译的。
你可以用as
在一行上做演员表
var userDataDir = (chrome.Capabilities.GetCapability("chrome") as Dictionary<string, object>)["userDataDir"];
当然,这会使您可能遇到空引用异常。 在 C# 6 中,可以使用 null 条件来缓解这种情况。
var userDataDir = (chrome.Capabilities.GetCapability("chrome") as Dictionary<string, object>)?["userDataDir"];
但是,您将不知道null
是字典中的值,还是因为强制转换失败而null
的值。 最好的办法是分多行执行此操作。
var dic = chrome.Capabilities.GetCapability("chrome") as Dictionary<string, object>;
if(dic == null)
{
// The capability isn't a dictionary.
}
else
{
var userDataDir = dic["userDataDir"];
}
如果chrome.Capabilities.GetCapability("chrome");
的返回类型是Dictionary<string, object>
您可以通过将返回的对象强制转换为字典来执行以下操作:
var capability = (Dictionary<string, object>)chrome.Capabilities.GetCapability("chrome");
var userDataDir = capability["userDataDir"];