c# - 将 foreach 循环更改为 LINQ 查询

标签 c# linq

我陷入了一个简单的场景。我有一个 List<string>对象,它的所有项目都有主体:

item_1_2_generatedGUID //generatedGUID is Guid.NewGuid()

但可能会有更多的数字 item_1_2_3_4_5_generatedGUID等等

现在,我想知道如何将该循环更改为 LINQ 的查询。有什么想法吗?

  string one = "1"; //an exaplme
  string two = "2"; //an exaplme

  foreach (var item in myStringsList)
  {
      string[] splitted = item.Split(new char[] { '_' },
                                     StringSplitOptions.RemoveEmptyEntries);

      if(splitted.Length >= 3)
      {
          if(splitted[1] == one && splitted[2] == two)
          {
              resultList.Add(item);
          }
      }
  }

最佳答案

var result = from s in lst 
             let spl = s.Split('_')
             where spl.Length >= 3 && spl[1] = one  && spl[2] == two
             select s;

关于c# - 将 foreach 循环更改为 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10706524/

相关文章:

c# - 使用 ComVisible 导出到 COM 时是否可以隐藏类父级?

c# - 在 WPF 中同步两个富文本框滚动条

linq - 如何在 linq 中删除和重新插入实体?

c# - 在 linq 查询中创建某种循环

c# - 如何使用 Entity Framework 6 通过 IN 语句执行原始 sql

c# - Internet Explorer 9 身份验证问题——URL 中的奇怪字符

c# - 如何找到与我的替代代码匹配的字符

.net - Entity Framework - 已添加具有相同键的项目。 - 尝试定义外键关系时出错

c# - 如何将 linq 结果转换为 HashSet 或 HashedSet

C# linq null 问题