![](/img/trans.png)
[英]How to get the Key and the Value of Dictionary<int, string> returned from method
[英]Get int value from Dictionary<string,string>
我有一个AssignApiPollerParameters
方法,它可以获取Dictionary<string,string>
配置,并且可以用于我的其他方法,但是我有返回 int 的方法ExtractPollingInterval
。
如何解决此冲突并从字典中获取或转换它?
public ApiPollerTemplateParameters AssignApiPollerParameters(Dictionary<string, string> configuration)
{
return SetBaseProperties<ApiPollerTemplateParameters>(
new ApiPollerTemplateParameters {PollingInterval = ExtractPollingInterval(configuration)});
}
private static int ExtractPollingInterval(IReadOnlyDictionary<string, string> configuration)
{
int pollingInterval;
return configuration.TryGetValue(PollingIntervalProperty, out pollingInterval ) ? pollingInterval : 0;
}
您需要首先将值作为字符串获取并将其转换为 int。 一个简单的示例是:
private static int ExtractPollingInterval(IReadOnlyDictionary<string, string> configuration)
{
string pollingInterval;
return configuration.TryGetValue(PollingIntervalProperty, out pollingInterval)
? int.Parse(pollingInterval)
: 0;
}
上面的代码从字典中读取字符串并使用int.Parse
从字符串中读取 integer。 请注意,如果字符串不包含有效的 integer, int.Parse
将引发错误。 这也可能取决于区域设置。
为了处理无效值,您可以使用int.TryParse
,例如
private static int ExtractPollingInterval(IReadOnlyDictionary<string, string> configuration)
{
string pollingIntervalStr;
if (!configuration.TryGetValue(PollingIntervalProperty, out pollingIntervalStr))
{
return 0; // No value provided at all
}
// Value provided, but maybe not a valid integer
return int.TryParse(pollingIntervalStr, out var pollingInterval)
? pollingInterval
: 0;
}
int.Parse
和int.TryParse
有各种重载,它们为区域设置提供参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.