繁体   English   中英

如何将 foreach 循环转换为 linq 语句?

How can i convert foreach loop to linq statements?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

那是我的代码。

foreach (var item in dtos)
{
      if (item.sample1 != SelectedDto.sample2)
      {
            adi.AppendLine(item.sample3.ToString() + " , " + item.sample1 + " , " + item.sample4);
      }

}

这就是我尝试的代码。

 if (dtos.Any(x => x.sample1 != SelectedDto.sample2)) ?????
1 个回复

嗯,你可以使用linq来提取你需要添加到StringBuilder中的信息,然后以这种方式添加它们

var selections = dtos.Where(x => x.sample1 != SelectedDto.sample2)
                     .Select(k => $"{k.sample3} , {k.sample1} , {k.sample4}");
adi.Append(string.Join(Environment.NewLine, selections));

这里我们使用 Where 枚举来提取所有匹配条件的 dto,并使用获得的序列从提取的项目中构建一组字符串。

此时,我们可以将所有内容添加到 StringBuilder 中,用一行将提取的字符串连接在一起。

正如您所看到的,这是更短的代码,但与之前的代码相比,它真的有必要和改进吗? 我没有用足够的数据对其进行测试以有很强的信心,但我感觉从性能的角度来看,linq 版本比正常的 for...loop 弱。

2 如何将foreach循环转换为LINQ Lambda

在此类中,我定义了字符串方法,该方法将在其中导航并根据数字值创建一个字符串。 我只想知道如何将foreach循环转换为LINQ lambda。 这是我为该类编写的测试方法。 ...

2013-05-09 09:45:19 4 1085   c#/ linq
5 如何将for(not foreach)循环转换为Linq?

假设我想要一个由10个数字组成的序列,并且我有一个按需产生数字的函数: 是完成此操作的常用方法。 但是,假设我要使用LINQ。 我已经可以了(让我们忽略类型之间的区别): 这对我几乎足够了。 但是,令我困扰的是我需要首先指定整数范围-这是多余的步骤,因为无论如何我都放弃了该 ...

7 如何抑制ReSharper建议的单个实例将我的foreach循环转换为LINQ表达式?

通常,如果我不同意ReSharper建议的一些代码转换,则动作列表中有一个选项可以通过在代码中放置注释来抑制建议。 以下是这些评论的一些示例: 和 我不知道为什么,但“部分循环体可以转换为LINQ表达式”规则的动作列表不包括抑制ReSharper建议的选项。 我已经尝试将转换 ...

9 我想将此foreach循环转换为LINQ语句

无论如何我对linq都不是很了不起,但我对这类问题通常没有任何问题。 我想将此foreach语句转换为LINQ语句: 我以为这样做会: 这显然会返回一个空白而不是列表......这个: 给了我一个“IEnumerable <IQueryable <int & ...

10 将foreach循环转换为linq

问题 我想将foreach循环转换为linq语句。 细节 我有以下统一类(来自元数据,删除了大部分功能) 我在我自己的类中有一个这个类的局部变量(继承),这是 我可以做到这一点 如何在Linq表达式中执行相同的操作? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM