我有一个Enumerable<KeyValuePair<TKey, TValue>>
. 我想创建它的bool TryGetValue(TKey, out TValue)
扩展方法,就像它在Dictionary<TKey, TValue>
.
我试过了
public static bool TryGetValue<TKey, TValue>
(this Enumerable<KeyValuePair<TKey, TValue>> mapping, TKey key, out TValue value)
{
bool retVal = false;
KeyValuePair<TKey, TValue> kvp;
kvp = mapping.First(x => x.Key.Equals(key));
if(kvp.Key == null && kvp.Value == null)
{
retVal = false;
value = default(TValue);
}
else
{
retVal = true;
value = kvp.Value;
}
return retval;
}
这是正确的方法吗?如果没有,请推荐一个。
笔记:
我不能使用字典,因为键是重复的。而且它只会返回第一个匹配值?
What happens to the rest?
我们可以离开他们。我正在发送从 DataTable 创建的 KeyValuePair。我order by columnname
在其查询中使用创建该 DataTable。