簡體   English   中英

如何用此代碼添加現有的字符串數組值?

[英]How to add existing string array value with this code?

Variable.cs

 public string[] CcEmails { get; set; }

Mail.cs

  EDTO.CcEmails = dr["rsh_ccmail"].ToString().Split(';');

在這里,我有兩個字符串。 xxxx@gmail.com; yyy@gmail.com

MailProcess.cs

dataRPT1=get data from sql
EDTO.CcEmails = new string[dataRPT1.Rows.Count];
                    for (int i = 0; i < dataRPT1.Rows.Count; i++)
                    {
                        EDTO.CcEmails[i] = dataRPT1.Rows[i]["email_addr"].ToString();
                    }

在這里,我得到了字符串列表,例如:aaa@gmail.com ............我嘗試用現有的添加,但它僅添加新的值。任何人都可以幫助我..

我發現最簡單的方法是創建一個列表,向列表中添加項目,然后使用string.Join創建新字符串。

var items = new List<string>();
for (int i = 0; i < dataRPT1.Rows.Count; i++)
{
    items.Add(dataRPT1.Rows[i]["email_addr"].ToString());
}

EDTO.CcEmails = string.Join(";", items);

更改問題后更新:

如果CcEmails的類型是數組,則最后一行可能是:

EDTO.CcEmails = items.ToArray();

我傾向於使用並集,盡管那樣會刪除重復的條目。 但是要保留所有條目,您可以在陣列上使用Concat。

        var emailString = "me@test.com;you@test.com";
        string[] emails = emailString.Split(';');

        string[] emailsFromSQL = new string[3];
        emailsFromSQL[0] = "everyone@test.com";
        emailsFromSQL[1] = "everyone2@test.com";
        emailsFromSQL[2] = "everyone2@test.com";

        //No Duplicates
        var combined = emails.Union(emailsFromSQL).ToArray();

        //Duplicates
        var allCombined = emails.Concat(emailsFromSQL).ToArray();

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM