链接实体-包括foreach内部查询
本文关键字:内部 查询 foreach -包括 实体 链接 | 更新日期: 2023-09-27 18:16:20
我创建了以下代码:
Dictionary<string, string> allItemNames = new Dictionary<string, string>();
var productNames = from product in entities.tbl_producttype
select new { ProductName = product.Name, ProductTitle = product.TitleName };
foreach (var productName in productNames)
{
allItemNames.Add(productName.ProductName, productName.ProductTitle);
}
它工作得很好,但是我可以通过删除'foreach'短语使代码更短,并使查询插入到字典中吗?就像linq的某种"into"短语,它告诉查询"将productName插入字典的第一个字符串,并将ProductTitle插入第二个字符串"?
当然可以!下面是一些例子:
http://www.dotnetperls.com/todictionary在你的例子中:
.ToDictionary(v => v.ProductName, v => v.ProductTitle)
在查询时可能会混淆代码以进行修改。您当前的实现很容易读懂,并且表达了循环的意图。因此,在Enumerable上没有方法可以做到这一点。
在List
上,您可以使用ForEach
方法,但是最干净的方法是使用LINQ ToDictionary方法。
var productNames =
from product in entities.tbl_producttype
select new { ProductName = product.Name, ProductTitle = product.TitleName };
var allItemNames =
productNames
.ToDictionary(product => product.ProductName, product => product.ProductTitle);
using ToDictionary
:
allItemNames = productNames.ToDictionary(p => p.Name, p => p.ProductTitle)