是否可以使用Linq替换此Foreach循环

时间:2013-09-30 12:07:00

标签: c# linq

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

            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,那么我相信它会提出一个合适的建议,但我没有。 This question uses Concat感觉它应该有所帮助,但我不确定在Concat中使用什么对象。

1 个答案:

答案 0 :(得分:8)

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

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

这将取代您的var addresses...以后。