以下のスニペットでラムダを使用して適切なTakeWhile構文を作成する方法を理解しようとしていたので、このフィルタリングを機能させて、フィルタリングされた辞書を返すことができます。ここの誰かが助けることができますか?前もって感謝します..
List<KeyValuePair<int, int>> myList = myHashList.ToList();
myList.Sort( (x,y) => x.Value.CompareTo(y.Value) );
var temp = myList.TakeWhile(x => x.Value >= keyToFind);
Dictionary<int, int> outDict = temp.ToDictionary(y => y.Key, y => y.Value);
ここで、myHashListはn個の整数値と整数キーを持つ辞書(int、int)であることにも言及しておきます。ここで、myList.TakeWhile(x => x.Value> = KeyToFind)を使用しているラムダが1回だけ実行されています。つまり、実行時のxは最初のレコードのみを保持し、比較は1回行われ、tempには0レコードがありますが、2行目以降のmyListにはnレコードがあります。ただし、実行時に、ラムダ比較が行われるとき、myListはコンテキストに含まれていません。ただし、実行が4行目に戻ると、myListはコンテキストに戻りますが、tempには常に0レコードがあります。TakeWhileが機能していません。ラムダを修正する必要がありますか?