0
列挙型から列挙型のサブセットを取得し、後で辞書の値に基づいてランダムな列挙型要素を選択したいとします。私はこれをやってみました:LINQクエリ列挙体一覧
var allEnums = Enum.GetValues(typeof(MyEnum)).Cast<MyEnum>();
var availableEnums = allEnums.Where(e => SomeClass.SomeDictionary[e] < someThreshold);
//Note: SomeDictionary<MyEnum, int>
また、これは動作しません。次のいずれかの
var availableEnums = SomeClass.SomeDictionary.Where(entry => entry.Value < someThreshold);
availableEnumsの値は常に{System.Linq.Enumerable + c__Iterator1D`1 [[AircraftModel、組立-CSHARPです、Version = 0.0.0.0、Culture =ニュートラル、PublicKeyToken = null]]}。私は何か非常に愚かなことをしているに違いないが、どうすれば正しいのだろうか?
達成しようとしているものがある場合は、コレクションを必要とする場合は、.ToArray()またはToList()を使用してクエリの結果を投影する必要があります。 Whereと他のlinq拡張はシーケンスを返します。遅延実行を調べる必要があります。 – reckface
ディクショナリには各列挙型の重みが含まれていますか? –
@reckfaceありがとう、.ToList()は.FindAll(...)とともにジョブを実行しました。私はもっと見る必要があると思う。どこか、私はそれがちょうどのようだったと思った。 – Maritn