我正在使用一个 System.Collections.Generic.Dictionary<string, string>
。
我想从这个字典中返回第一个键。我尝试了 dic.Keys[0]
,但是在 Keys
属性上(它是一个 KeyCollection
对象)我只有一个枚举器。
我是否必须枚举所有的键才能得到第一个键?
我正在使用一个 System.Collections.Generic.Dictionary<string, string>
。
我想从这个字典中返回第一个键。我尝试了 dic.Keys[0]
,但是在 Keys
属性上(它是一个 KeyCollection
对象)我只有一个枚举器。
我是否必须枚举所有的键才能得到第一个键?
假设您正在使用 .NET 3.5:
dic.Keys.First();
注意,字典中的键/值对遍历顺序没有保证。你可能会发现在很多情况下,你得到的是你放入字典的第一个键 - 但你绝对不能依赖于这一点。正如Skirwan所说的那样,没有“第一个”的概念。基本上,上面的代码会给你“字典中的一个键” - 这就是所有保证的内容。FirstOrDefault
。)dic.Values.First()
即可,无需通过key。 - Jon Skeet在字典中,“第一”这个概念并不真正适用,因为条目之间没有排序;任何插入或删除操作都可能彻底改变键的顺序。
IEnumerator enumerator = dictionary.Keys.GetEnumerator();
enumerator.MoveNext();
object first = enumerator.Current;
理想情况下,应该检查MoveNext()是否成功(它会返回一个bool类型),否则调用Current方法可能会抛出异常。foreach (<Type> k in dic.Keys)
return k;
linq
技术。var key = dic.Take(1).Select(d => d.Key).First()
var myList = dic.Take(1).Where(d => d.Key.Contains("Heaven")).ToList();