【发布时间】:2010-07-12 15:15:58
【问题描述】:
这可能吗,还是我只是试图过度缩短我的代码?
我想可能是这样的:
IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().All(s => s.Trim());
但这不好:(
【问题讨论】:
这可能吗,还是我只是试图过度缩短我的代码?
我想可能是这样的:
IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().All(s => s.Trim());
但这不好:(
【问题讨论】:
我想你只想:
IEnumerable<string> trimmed = untrimmedStrsArr.Select(s => s.Trim());
如果您有内存中的集合,例如列表或数组,那么您可以使用IEnumerable<T> 的 LINQ 方法来处理它们,因为这些处理内存中的数据。 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());
【讨论】: