23

これは可能ですか、それともコードを過度に短縮しようとしていますか?

私はそれが次のようなものかもしれないと思いました:

IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().All(s => s.Trim());

しかし、それは良くありません:(

4

3 に答える 3

68

私はあなたがちょうど欲しいと思います:

IEnumerable<string> trimmed = untrimmedStrsArr.Select(s => s.Trim());

リストや配列などのメモリ内コレクションがある場合は、のLINQメソッドを使用してそれらを操作できIEnumerable<T>ます。これは、これらがメモリ内のデータを処理するためです。Queryableは、データベースを操作する場合(たとえば、LINQ to SQLを使用する場合)に役立ちます。

さまざまな方法に関する優れたドキュメントは、MSDNにあります。Select以下は、代わりに必要な理由を説明する必要がありますAll

  • All-シーケンスのすべての要素が条件を満たすかどうかを決定します。
  • Select-シーケンスの各要素を新しい形式に投影します。
于 2010-07-12T15:18:26.493 に答える
3

これは私にとってはうまくいくようでした:

IQueryable<string> trimmed = untrimmed.AsQueryable<string>().Select(m => m.Trim());
于 2010-07-12T15:23:25.233 に答える
2

Allこれを行うには適切な方法ではありません。これは述語であり、コレクション内のすべての項目がパラメーターで指定した条件に一致する場合にtrueを返します。使用する

IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().Select(s => s.Trim()); 
于 2010-07-12T15:18:17.990 に答える