传递一个值列表并为其关联结果重新调用字典
本文关键字:关联 结果 新调用 字典 调用 一个 列表 | 更新日期: 2023-09-27 18:15:32
在我的表中,我有一些列,其中两列是我感兴趣的:Description
和Key
列所以一些样本行看起来是这样的:
Key Description
12RRR "Description 1"
45RTG "Description 2"
45ERT "Description 3"
我想写一个方法,获取Descriptions
的列表,并向我返回另一个列表或字典或任何其他适当的结构,即该Description
的Key
值。我可以写一个更简单的查询来逐个搜索。传递一个描述,获取其密钥等。。。但我的列表大约是120000项,这样我将运行脚本120000次!这就是为什么我想将它们全部传递并在一个查询中获得它们。
这就是我所走的路,但我认为这是不对的。
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();
}
我不确定你想要什么结构,但如果你想查找Key to Dictionary,你可以在结果上使用LINQ的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);
}
您可以执行联接语句:
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);
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进行。