【问题标题】:Trim() a list of strings using dynamic query language to produce a trimmed IQueryable<string>Trim() 使用动态查询语言生成修剪后的字符串列表 IQueryable<string>
【发布时间】:2010-07-12 15:15:58
【问题描述】:

这可能吗,还是我只是试图过度缩短我的代码?

我想可能是这样的:

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

但这不好:(

【问题讨论】:

    标签: c# linq string trim


    【解决方案1】:

    我想你只想:

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

    如果您有内存中的集合,例如列表或数组,那么您可以使用IEnumerable&lt;T&gt; 的 LINQ 方法来处理它们,因为这些处理内存中的数据。 Queryable 在处理数据库时很有用(例如,使用 LINQ to SQL)。

    您可以在MSDN 上找到有关各种方法的良好文档。下面应该解释为什么你需要Select而不是All

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

    【讨论】:

      【解决方案2】:

      这个似乎对我有用:

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

      【讨论】:

        【解决方案3】:

        All 不是执行此操作的正确方法。它是一个谓词,如果集合中的每个项目都符合您在参数中给出的条件,则返回 true。使用

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-18
          • 2016-04-07
          • 1970-01-01
          • 1970-01-01
          • 2012-01-29
          • 1970-01-01
          相关资源
          最近更新 更多