【问题标题】:how to return ValueKeyPair or something else if pair wasn't found?如果找不到对,如何返回 ValueKeyPair 或其他东西?
【发布时间】:2014-04-13 13:33:42
【问题描述】:
我有一个由 Vehicle(key) 和 Owner(value) 构建的字典。
我有一种方法可以通过给定车辆的许可证号搜索 ValueKeyPair,如果找到它,
它返回找到的许可证的 valueKeyPair。
但是如果在搜索过程中该方法没有找到匹配的 Key,那么它应该返回什么?
似乎 ValueKeyPair 不能初始化为 NULL,所以我不能返回 null。
你能告诉我该怎么做吗?
谢谢。
【问题讨论】:
标签:
c#
visual-studio-2012
dictionary
key-value
【解决方案1】:
假设Key和Value都是String类型,你可以像这样返回KeyValuePair<string, string>的默认值:
return default(KeyValuePair<string, string>);
和你正在检查的代码,你可以检查键的空值。
或
修改您的方法以返回 nullable KeyValuePair,这使您能够返回 null。
将返回类型从 KeyValuePair<string, string> 替换为 KeyValuePair<string, string>?。
private KeyValuePair<string, string>? MethodName()
{
return null;
}
【解决方案2】:
为什么不在 if 语句中使用 TryGetValue?
http://msdn.microsoft.com/en-us/library/bb347013(v=vs.110).aspx