2011-04-26 110 views
28

如何从查找中获取密钥集合<>我通过.ToLookup()方法创建的集合?从查找中获取密钥

我有一个查找将int值映射到自定义类的实例组。我需要查找包含的所有int键的集合。任何方式来做到这一点,还是我必须收集和分开保存它们?

回答

38

您可以循环访问该组关键项组并读取关键字,例如,

var keys = myLookup.Select(g => g.Key).ToList(); 
+3

任何理论,为什么'Lookup'不包括''不同Dictionary' Keys'方法? – NetMage 2017-09-14 22:04:45

+0

我不知道 - 最好的猜测也许是因为查找是由LINQ提供的,你可以使用LINQ来提取这样的密钥?以下是.NET参考源中的当前实现:[查找](https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,cb695d4a973ef608),[Dictionary](https:// referencesource.microsoft.com/#mscorlib/system/collections/generic/dictionary.cs,d3599058f8d79be0)。他们的内部存储看起来大致相同。 Dictionary有它自己的KeyCollection类,它很容易适应Lookup,但它不仅仅是兼容。 – Rup 2017-09-15 19:11:14

8

一个快速的方法:

var myKeys = myLookup.Select(l=>l.Key);