いくつかの時間前に、私は非常にねじれたプロジェクトに取り組んできました。コードを単一スコープで書くことしかできず、後で(別のモジュールによって)C#関数に入れられます。System.Linq名前空間を含めずにLinqとlambdaを使用することはできますか?
私は以前に宣言された(私はそれらに影響を与えなかった)ネームスペースしか使用できませんでした。 そのため、私はヘッダーとライブラリを変更できませんでした。私はどちらもラムダ式を使用することができませんでした、またLINQ - -
問題は、私はジェネリックコレクションを操作したいときに来た私は、ファイルヘッダへのアクセス何もなかったように私は単純に、using System.Linq;
を置くことができません ました。
私は単純なことをしなければならず、LINQまたはラムダなしでは管理が簡単でした。しかし、その後、IEnumerableでより複雑な操作を する必要がある場合、何が起こるのか不思議に思っていました。 それから、私の質問が来る:
ファイルヘッダーを変更したり、新しい名前空間を追加することなく、LINQまたはlambdaを使用することはできますか?
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?
: 私の最初の推測では、のようなものになるだろう場合。
'System.Linq.Enumerable.Where(_NewList、n => n%2 == 0)' –
@nsinreal - これはまさに私が探していたものです。それを答えとして追加し、それを正しいとマークします; –
クラスの名前空間宣言内に 'using'ステートメントを含めることもできます。それはあなたがアクセスできる範囲外ですか? – Sam