使用动态查询语言修剪()字符串列表以生成修剪的IQueryable <string> </string>

时间:2010-07-12 15:15:58

标签: c# linq string trim

这可能,或者我只是想过度缩短我的代码?

我认为它可能是这样的:

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

但这并不好:(

3 个答案:

答案 0 :(得分:50)

我想你只想:

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

如果你有内存中的集合,例如list或array,那么你可以使用IEnumerable<T>的LINQ方法来处理它们,因为这些处理数据在内存中。在使用数据库时(例如,使用LINQ to SQL),Queryable非常有用。

您可以在MSDN上找到有关各种方法的详细文档。以下内容应说明您需要Select代替All的原因:

  • All - 确定序列的所有元素是否满足条件。
  • Select - 将序列的每个元素投影到新表单中。

答案 1 :(得分:2)

All不是正确的方法。它是一个谓词,如果集合中的每个项都与您在参数中给出的条件匹配,则返回true。使用

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

答案 2 :(得分:2)

这个似乎对我有用:

IQueryable<string> trimmed = untrimmed.AsQueryable<string>().Select(m => m.Trim());