【发布时间】:2014-05-30 05:31:02
【问题描述】:
我有一组对象,这些对象与数据库中的项目相关。我们创建这些对象的本地缓存以及索引,以允许快速过滤/搜索数据。我遇到的问题是将对象列表转换为查找。
(非常)简化的对象:
String ItemID;
List<String> LocationIDs;
一个项目可以属于多个位置,每个位置可以包含多个项目。
我想使用 LocationIDs 作为键创建查找,以便我使用其位置 ID 获取属于特定位置的项目列表,并且可以在任意数量的位置下找到任何项目(查找键) .
我尝试了以下
items.ToLookup(item => item.LocationIDs);
但这不会返回预期的结果。
理想的用法是:
查找:
{
["Location 1"] => {
{Item 1},
{Item 2},
{Item 3},
{Item 9},
},
["Location 2"] => {
{Item 2},
{Item 4},
{Item 3}
},
["Location 3"] => {
{Item 1},
{Item 3},
{Item 7}
},
["Location 4"] => {
{Item 1},
{Item 2},
{Item 10}
}
}
然后您可以轻松地检索给定位置的项目。
感谢任何帮助。
谢谢
【问题讨论】:
标签: .net linq indexing lookup ilookup