これは可能ですか、それともコードを過度に短くしようとしているだけですか?
私はそれが次のようなものかもしれないと思いました:
IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().All(s => s.Trim());
しかし、それは良くありません:(
私はあなたがちょうど欲しいと思います:
IEnumerable<string> trimmed = untrimmedStrsArr.Select(s => s.Trim());
リストや配列などのメモリ内コレクションがある場合は、IEnumerable<T>
のLINQメソッドを使用してそれらを操作できます。これは、これらがメモリ内のデータを処理するためです。 Queryableは、データベースを操作する場合(LINQ to SQLを使用する場合など)に役立ちます。
[〜#〜] msdn [〜#〜] で、さまざまな方法に関する優れたドキュメントを見つけることができます。以下に、Select
ではなくAll
が必要な理由を説明します。
All
-シーケンスのすべての要素が条件を満たすかどうかを決定します。Select
-シーケンスの各要素を新しい形式に投影します。これは私のために働いているようでした:
IQueryable<string> trimmed = untrimmed.AsQueryable<string>().Select(m => m.Trim());
All
はこれを行うための正しい方法ではありません。これは述語であり、コレクション内のすべての項目がパラメーターで指定した条件に一致する場合にtrueを返します。使用する
IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().Select(s => s.Trim());