我正在使用 C# 3.5 我有一个IList<MyItemLinkProperty>
, 其中MyItemLinkProperty
表示项目与其属性(一个或多个)之间的链接。它有ItemId
, PropertyId
, PropertyValue
. 在这个列表ItemId
中可能会出现很多次,因为一个项目可以有许多属性、颜色、大小等(这是一个与性能相关的问题,我有这种列表并且没有映射到项目实体)。
ItemID PropId PropValue
itemProperty1 = { 1001, 1, 'Red' }
itemProperty2 = { 1001, 2, 'Small' }
itemProperty3 = { 1002, 1, 'Red' }
itemProperty4 = { 1002, 3, 'Medium' }
itemProperty5 = { 1003, 4, 'Green' }
itemProperty6 = { 1003, 2, 'Small' }
现在我需要找到所有具有属性 A 和属性 B 的项目。例如“红色”和“小”。这应该给我ItemID
1001 具有这两个属性。
在伪代码中,我想我在“给我属性 id 为 1 或 2 且项目 id 相同的项目”。然后我知道一个拥有这两个属性的项目。
我在想一个 linq 查询会做到这一点。但是没有得到这个工作并被卡住了。也许我在这里阻塞了我的思想,过度思考并让它变得过于复杂......
对此有最佳解决方案的任何提示?