我有一个这样的分组
var myGroups = dataItems.GroupBy(item => item.ItemType);
Run Code Online (Sandbox Code Playgroud)
如何检查 myGroups 中是否存在密钥?
var itemTypeLookup = dataItems.ToLookup(item => item.ItemType);
Run Code Online (Sandbox Code Playgroud)
现在您可以同时执行这两项操作,检查键是否存在并获取项目而无需再次查询:
bool typeExists = itemTypeLookup["sampleType"].Any();
Run Code Online (Sandbox Code Playgroud)
与 a 相比的优点GroupBy是您可以随意访问它,而无需再次执行查询。优于ToDictionary(after GroupBy)的优点是您可以访问不可用的键并获得一个空序列,而字典索引器会引发异常。之后你不能改变查找,你可以将它用于 LINQ 查询,因为它返回一个序列。除此之外,查找和字典是相似的并且都非常有效。