私は自分自身をLINQでかなり良いと思うのが好きですが、時々、私は仕事に就けない何かを成し遂げようとします。キーを使用して値を検索できるように、を辞書に変換したい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);
しかし、それはうまくいかないようです。でラムダ式を使用しようとすると、使用するlist.GetItems(query)
オプション.Where
やLINQコマンドが表示されません(これは、であるため奇妙ですSPListCollection
)
前もって感謝します。