Trim() a list of strings using dynamic query language to produce a trimmed IQueryable<string>

Matt W picture Matt W · Jul 12, 2010 · Viewed 26.2k times · Source

Is this possible, or am I just trying to way overly shorten my code?

I thought it might be something like:

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

But that's no good :(

Answer

Tomas Petricek picture Tomas Petricek · Jul 12, 2010

I think you want just:

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

If you have in-memory collection such as list or array, then you can work with them using LINQ methods for IEnumerable<T>, because these process data in memory. Queryable is useful when working with databases (e.g. using LINQ to SQL).

You can find a good documentation on various methods on MSDN. The following should explain why you need Select instead of All:

  • All - Determines whether all elements of a sequence satisfy a condition.
  • Select - Projects each element of a sequence into a new form.