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 回答