【问题标题】:Split a string to get separate email IDs in the string [duplicate]拆分字符串以在字符串中获取单独的电子邮件 ID [重复]
【发布时间】:2023-03-25 17:25:01
【问题描述】:

我有一个包含这样的电子邮件地址的字符串:

string emailIDs = "xyz@gmail.com;abc@yahoo.com;frog@gmail.com;whyme@hotmail.com;"

我想将这些电子邮件添加到列表中。 我尝试将其拆分为 ';'但这会在列表中创建一个额外的记录,从而导致空异常。 我想在没有任何额外记录的情况下拆分并将其添加到我的列表中。请让我知道如何在 c# 中实现这一点?

我正在尝试这样:

List<string> To = new List<string>(emailIDs.Cc.Split(new[] { ";" },StringSplitOptions.RemoveEmptyEntries));

结果如下:

我试图在最后删除这条额外的记录,因为抄送只包含两条​​记录:

【问题讨论】:

  • this 重复,只是不同的分隔符

标签: c# string list


【解决方案1】:

拆分时使用StringSplitOptions.RemoveEmptyEntries去除空白条目。

查看文档:https://docs.microsoft.com/en-us/dotnet/api/system.stringsplitoptions?view=netframework-4.8

例子:

var list = emailIDs.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries);

编辑:

我认为您发布的字符串 "xyz@gmail.com;abc@yahoo.com;frog@gmail.com;whyme@hotmail.com;" 与您传递给 String.Split() 方法的实际字符串不匹配。仔细查看email.Cc 的末尾,它的末尾包含空格,生成一个非空但空白的字符串,StringSplitOptions.RemoveEmptyEntries 不会删除。

之前修剪那个空白呢?

var list = emailIDs.TrimEnd().Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                    ^^^^^^^^^

【讨论】:

  • 这不起作用。
  • @Divya 这行得通
  • 不,这不是。如果可行,我会接受这个答案。
  • 无论如何感谢您的回答。
  • 我更新了我的答案。感谢您提供额外的调试信息,我想现在已经解决了。
猜你喜欢
  • 1970-01-01
  • 2017-04-15
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 2013-03-20
  • 2019-10-11
相关资源
最近更新 更多