首页 > 解决方案 > 如何为数组的第一个和第二个或最后一个和最后一个元素发送电子邮件

问题描述

我有一系列电子邮件地址。我可以使用 foreach(如下)发送所有电子邮件。如何仅针对给定数组中的第一个和第二个元素或最后一个和最后一个元素发送电子邮件?

string[] emails = storeEmails.Split(new char[] { ';' });

foreach (string emailTo in emails)
{
    emailTemplate.Email = emailTo;
    _eventService.SendEmail(emailTemplate, emailBody);
} 

标签: c#arraysfor-loop

解决方案


您可以使用Linq轻松做到这一点。

这是一个采用前两个的示例(使用xUnit演示):

using System.Linq;
using Xunit;

namespace Q54736241
{
    public class Example
    {
        [Fact]
        public void Example1()
        {
            var strings = new[] { "one", "two", "three", "four", "five" };

            var firstTwo = strings.Take(2);

            Assert.Equal(new[] {"one", "two"}, firstTwo);
        }
    }
}

您需要做更多的工作才能获得最后两个。查看这个相关问题以获取一些示例:Using Linq to get the last N elements of a collection?


推荐阅读