我喜欢认为自己在 LINQ 方面做得很好,但我时不时地尝试完成一些我无法开始工作的事情。我想将 a 转换SPListItemCollection
为字典,这样我就可以使用该键来查找一个值,而无需每次都进行 LINQ 查询:
var formsConfigItems = new Dictionary<string, string>();
foreach (SPListItem item in list.GetItems(query))
formsConfigItems.Add(item.Title, (item["Value"] == null ? string.Empty : item["Value"].ToString()));
这行得通,但我希望使用 LINQ 以更简洁的方式做到这一点。(没什么大不了的,但我喜欢尽可能在 for 循环上使用 LINQ,尽管它在幕后是一样的。
我试图做这样的事情:
var formsConfigItems = (from SPListItem i in list.GetItems(query)
select new { i.Title, i["Value"].ToString() }).ToDictionary<string, string>(k=>k.Key, k=>k.Value);
但这似乎不起作用。如果我尝试在 上使用 lambda 表达式list.GetItems(query)
,则无法选择使用或任何 LINQ 命令(这很奇怪,.Where
因为它是SPListCollection
提前致谢。