这可能,或者我只是想过度缩短我的代码?
我认为它可能是这样的:
IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().All(s => s.Trim());
但这并不好:(
答案 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());