是否可以使用 Linq 来替换这个 Foreach 循环

本文关键字:Foreach 循环 替换 可以使 Linq 是否 | 更新日期: 2023-09-27 18:33:16

是否可以将foreach语句替换为Linq命令?

            string recipient = "recipients could not be defined"; 
            if (mail.To != null && mail.To.Count > 0) {
                var addresses = mail.To.Select(r => r.Address);
                foreach (string s in addresses) {
                    recipient += s + " ";
                }
            }

如果我有ReSharper,那么我相信它会提出一个适当的建议,但我没有。这个问题使用 Concat,感觉它应该有所帮助,但我不确定在 Concat 中使用什么对象。

是否可以使用 Linq 来替换这个 Foreach 循环

与其使用 Linq foreach(除非您编写了自己的代码,否则仅在List<T>上可用),您可以向后执行此操作并避免在此过程中的字符串连接:

recipient = string.Join(" ", mail.To.Select(r => r.Address));

这将取代您的var addresses...