2011-04-26 53 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);