【发布时间】:2015-03-06 16:52:10
【问题描述】:
public IDictionary<IContextType, IDictionary<string, string>> MasterScopeVariablesTable
= new Dictionary<IContextType, IDictionary<string, string>>();
我有一本带键的字典。我想使用 LINQ 从包含名称为“State”的“key”的任何字典中查询 LAST 条目。字典有一些相同的键值不同。
类似于此链接 Query a Dictionary of Dictionaries?
但是这可以在没有 foreach 循环的情况下在单个调用中完成,有人知道怎么做吗?
【问题讨论】:
-
在这里解释
LAST?不保证在IDictionary订购,请考虑IOrderedDictionary -
它们按创建时的顺序排列。我对此持肯定态度,因为我正在使用 IDispose 方法从主服务器中删除最后一个键字典。
-
再想一想stackoverflow.com/questions/4007782/…,这些元素在您的测试中可能是按照这个顺序排列的。您想编写在测试中有效的代码还是一直有效?
-
这行得通,但我不想使用 [ContextType] 作为索引,只想要任何一个键名为“State”的字典
-
@CraigTrombly 无序集合的最后一项实际上是从该集合中获取随机项。你不知道你会真正得到哪个项目。如果您想随机获得一件物品,而不是特定物品,请继续。如果您拥有的项目在逻辑上是有序的,并且该顺序很重要,那么不要使用无序集合。
标签: c# linq dictionary