如果Dictionary<object, object>
myDictionary
碰巧包含单个项目,那么检索值对象的最佳方法是什么(如果我不关心密钥)?
if (myDictionary.Count == 1)
{
// Doesn't work
object obj = myDictionary.Values[0];
}
由于
答案 0 :(得分:8)
根据您是否希望它失败,如果有多个对象,您可以使用
myDictionary.Value.Single();//Will fail if there's more than one
或
myDictionary.Value.First();//Will just return the first regardless of the count
答案 1 :(得分:3)
object obj = myDictionary.Values.Single();
答案 2 :(得分:3)
我永远不会假设只有一个。如果你知道总会有一个,那么为什么要使用字典?
答案 3 :(得分:1)
您无法直接或通过索引获取值,您必须知道密钥:
object obj = yourDictionary[theKeyThatYouHappenToKnow];
或使用枚举器:
var en = yourDictionary.GetEnumerator();
en.MoveNext();
object obj = en.Current.Value;
en.Dispose();
如果您使用的是框架3.5,您还可以使用Single
或First
等扩展方法为您使用枚举器。
答案 4 :(得分:0)
我认为你可以使用迭代器。
myDictionary.GetEnumerator().Current