しばらく前に、私は非常にひねくれたプロジェクトに取り組んでいました。単一のスコープでしかコードを記述できず、後で (別のモジュールによって) C# 関数に入れられました。
以前に宣言された名前空間のみを使用でき (影響はありませんでした)、自分が作業したスコープの変数しか使用できませんでした。そのため、ヘッダーとインクルード ライブラリを変更できませんでした。
問題は、ジェネリック コレクションを操作したいときに発生しました。ラムダ式も LINQ も使用できませんでしusing System.Linq;
た。ファイル ヘッダーにアクセスできなかったため、単純に を配置できませんでした。
簡単なことをするだけで済み、LINQ やラムダを使わなくても簡単に管理できました。ただし、その後、IEnumerable でさらに複雑な操作を使用する必要がある場合はどうなるのだろうと考えていました。それから、私の質問があります:
ファイル ヘッダーを変更したり、新しい名前空間を追加したりせずに、LINQ またはラムダを使用することは可能ですか?
があるとしましょうList<int> _Numbers = new List<int>();
。いくつかの数字で埋めてみましょう。ここで、すべての偶数を選択したいと思います。
using System.Linq;
ヘッダーで、解決策は明らかです。
List<int> _NewList = _Numbers.Where(n => n % 2 == 0).ToList();
また
List<int> _NewList = (from _Number in _Numbers where _Number % 2 == 0 select _Number).ToList();
しかし、LINQ が含まれていない場合、どうすればこれを達成できますか? 私の最初の推測は次のようになります。
List<int> _NewList = System.Linq. // ??? What to add here?
この問題はかなり風変わりなものであることは承知しており、このような方法を取るのは非常に珍しいことですが、ただ興味があるだけで、このケースに関する情報は見つかりませんでした。