我创建了一个多键字典,因为(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)];

08-19 21:53