1

我得到一个带有电子邮件地址的字符串,用“;”分隔 看起来像这样:

geve@krag.de;;;Tobias@nxs.de;Wissel@weg.de;Sand@nex.de;Claudia@bea.de;;

我想在这里向这些电子邮件地址发送一个约会样本给一个人:

Dim appointment As New EWS.Appointment(esb)
            appointment.Subject = "Einladung zu einem Termin"
            appointment.Body = txtThema.Text
            appointment.Start = Von
            appointment.End = Bis
            appointment.Location = "Raum 202 Kleinostheim"
            appointment.RequiredAttendees.Add("geve@krag.de")  // HERE ARE THE Attendees
            appointment.Save(EWS.SendInvitationsMode.SendToAllAndSaveCopy)

我需要除第一个之外的每个电子邮件地址,因为他会发送邮件。我怎样才能做到这一点?

在此先感谢您的帮助

4

2 回答 2

6

以下是实际将字符串拆分为字符串数组的方法:

Dim emails As String() = emailString.Split({";"}, StringSplitOptions.RemoveEmptyEntries)

还有其他版本的重载“Split”方法,但那个特定版本允许您传入 StringSplitOptions 值,从而允许您立即排除空白条目。

获得字符串数组后,您可以通过几种不同的方式循环并省略第一个数组。

我们可以使用 For 循环并完全跳过第一个条目:

' Regular For loop approach
Dim emails As String() = emailString.Split({";"}, StringSplitOptions.RemoveEmptyEntries)

Dim appointment As New EWS.Appointment(esb)
With appointment
    .Subject = "Einladung zu einem Termin"
    .Body = txtThema.Text
    .Start = Von
    .End = Bis
    .Location = "Raum 202 Kleinostheim"             
End With

' start at i = 1 to skip index 0
For i = 1 To emails.Length - 1
    appointment.RequiredAttendees.Add(emails(i))  ' HERE ARE THE Attendees
Next

appointment.Save(EWS.SendInvitationsMode.SendToAllAndSaveCopy)

或者识别发件人的电子邮件并使用 For Each 和 If 来省略它:

' For Each approach
' set up string array and appointment object like above

Dim sender As String = emails.FirstOrDefault()

' ignore all instances of the sender's address
For Each address In emails
    If address.ToLower <> sender.ToLower Then
        appointment.RequiredAttendees.Add(emails(i))  ' HERE ARE THE Attendees
    End If
Next

appointment.Save(EWS.SendInvitationsMode.SendToAllAndSaveCopy)

我会说玩它,并使用最适合你的方法。

于 2012-10-01T13:12:19.937 回答
1

您可以使用 split 函数解析出每封电子邮件并使用 Linq 删除空白并跳过第一个条目。我认为这种语法可以在 VB 中使用。

Dim emailString = "geve@krag.de;;;Tobias@nxs.de;Wissel@weg.de;Sand@nex.de;Claudia@bea.de;;"

Dim emaillist = (From email In emailString.Split(";").Skip(1) Where email.Length > 0 Select email).ToArray()
于 2012-10-01T12:59:12.640 回答