これは可能ですか、それともコードを過度に短縮しようとしていますか?
私はそれが次のようなものかもしれないと思いました:
IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().All(s => s.Trim());
しかし、それは良くありません:(
私はあなたがちょうど欲しいと思います:
IEnumerable<string> trimmed = untrimmedStrsArr.Select(s => s.Trim());
リストや配列などのメモリ内コレクションがある場合は、のLINQメソッドを使用してそれらを操作できIEnumerable<T>
ます。これは、これらがメモリ内のデータを処理するためです。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());