LINQを使用してDictionary<string, List<CustomObject>>
からを作成しようとしていますList<CustomObject>
。これを「var」を使用して機能させることができますが、匿名型を使用したくありません。ここに私が持っているものがあります
var x = (from CustomObject o in ListOfCustomObjects
group o by o.PropertyName into t
select t.ToList());
Cast<>()
一度LINQライブラリから使用してみましx
たが、無効なキャストであるためにコンパイルの問題が発生します。
var x =(ListOfCustomObjectsグループのCustomObject oからo.PropertyNameを使用してt select tに)を試すとどうなるでしょうか?ToList();
—
esastincy
このために設計されたToLookupを使用するのではなく、これを行う必要がある理由はありますか?
—
Jon Skeet、2011年
ジョン、この状況でのToLookupの動作の例を投稿していただけませんか。私はそのLINQメソッドに精通していません。
—
Atari2600 2011年
@JonSkeetあなたは素晴らしいです!(つまり、誰もがそれをすでに知っていましたが、それでもなおです。)ToLookupを使用することを計画していなかった理由は、今まで聞いたことがなかった原因でした。今私は知っている!
—
neminem 2013
完全を期すために
—
Michael Blackburn
var
、「匿名」タイプを使用するのではなく、「暗黙的」タイプを使用しています。匿名型は、構築を処理するためにコンパイラによって作成される新しいクラスですnew { thing = "stuff" };
。暗黙の型は既存のクラスでvar
あり、変数がすぐに割り当てられているときにそれらを参照する便利な方法です。変数の型は、割り当てられているオブジェクトの型から推測できます。匿名型を参照する変数を暗黙的に入力することもできます。var a = new { thing = "stuff" };