我喜歡將自己認爲與LINQ相當不錯,但我偶爾會嘗試完成某些我無法工作的東西。我想一個SPListItemCollection
轉換成字典,以便我可以使用該密鑰來查找值,而不需要一個LINQ每次查詢:將for循環轉換爲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。 (沒什麼大不了的,但我喜歡使用LINQ在for循環只要有可能,雖然它的幕後同樣的事情
我試圖做這樣的事情:
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);
但是,沒有按」不像是會工作,如果我嘗試使用上list.GetItems(query)
lambda表達式,我不給使用.Where
期權或任何LINQ命令(這是奇怪的,因爲它是一個SPListCollection
)
在此先感謝。
「如果我嘗試使用上list.GetItems(查詢)lambda表達式,我不給選項使用「。返回類型是否實現IEnumerable?如果不是,你需要調用list.GetItems(query).AsEnumerable()。 –
2013-03-08 14:58:49