在我的表格中,我有一些专栏,其中两篇符合我的兴趣:
Description
和Key
列
所以一些示例行将如下所示:
Key Description
12RRR "Description 1"
45RTG "Description 2"
45ERT "Description 3"
我想编写一个获取Descriptions
列表的方法,并返回另一个列表或字典或任何其他适当的结构,即Key
的{{1}}值。
我可以编写一个更简单的查询来逐个搜索。传递一个描述,得到它的密钥等...但我的列表大约有120,000个项目,这样我将运行脚本120,000次!这就是为什么我想要将它们全部传递并在一次查询中获取它们。
这是我有多远,但我不认为这是正确的。
Description
答案 0 :(得分:1)
你可以做一个连接声明:
return (from r in repo.Content.MyTable
join d in des on r.Description equals d
select r.Key).ToList();
如果你想要一本字典:
return (from r in repo.Content.MyTable
join d in des on r.Description equals d
select r.Key, r.Description).ToDictionary(p=>p.Key, p=>p.Description);
答案 1 :(得分:1)
我不确定您要求的结构是什么,但如果您想查找Key to Dictionary,可以使用LINQ' s ToDictionary创建这样的字典
private IDictionary<string, string> Lookup(List<string> des)
{
var query = (from r in repo.Context.MyTable
where des.Contains(r.Description)
select r);
return query.ToDictionary(r => r.Key, r => r.Description);
}
答案 2 :(得分:1)
private List<string> Lookup(List<string> des)
{
var query = (from r in repo.Context.MyTable
where des.Contains(r.Description)
select r.Key);
return query.ToList();
}
这是一个查询解决方案,此查询将在此行中实现:
return query.ToList();
将通过sql进行过滤。