我创建了一个多键字典,因为(registrantsFields是可枚举的类型)
var registrantsRepository = registrantsFields.ToDictionary(c => Tuple.Create(c.RegistrantID, c.FieldID, c.DataID));
我用ContainsKey搜索字典为
if (registrantsRepository.ContainsKey(Tuple.Create(registrantId, fieldId, dataId)))
到目前为止,它工作正常。
但是我想只用2个键来搜索字典,即什么字典包含某些registrantId和fieldId,但有任何dataId。换句话说,我喜欢找到所有类似
var entries = registrantsRepository(Tuple.Create(registrantId, fieldId, *))
应该如何做(也许在Linq中)?谢谢。
最佳答案
我只是创建一个单独的Lookup。
var registrantsByIdAndField = registrantsFields
.ToLookup(r => Tuple.Create(c.RegistrantID, c.FieldID));
然后,您仍然可以使用以下命令进行快速查找:
var entries = registrantsByIdAndField[Tuple.Create(registrantId, fieldId)];