gpt4 book ai didi

c# - 防止C#中的重复字符串

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:20 25 4
gpt4 key购买 nike

我的代码中有一个字符串,它连接数据库中各个表的电子邮件地址,然后显示在 Outlook 的抄送字段中。

我想要的只是过滤字符串,使字符串不包含任何重复的电子邮件地址。换句话说,我不希望在输出中再次重复单个电子邮件地址。

请帮忙

DataSet ds = DatabaseFunctions.getEmailsBySPROC("getEmailByCircuit", sql_CircuitEmail);

if (ds != null)
{
for (int idx = 0; idx < ds.Tables[0].Rows.Count; idx++)
{
emailList = emailList + ds.Tables[0].Rows[idx]["Email"].ToString() + ";";
}
}

这就是从一张表中退出的代码..

还有另一个代码可以从另一个表中检索..\并且该字符串是由 ; 分隔的电子邮件列表分号

最佳答案

第一个也是最明显的建议是在数据库方面过滤掉它;这意味着当从数据库中检索数据时,如果可能的话添加一个“不同的”子句,以便您只能获得不同的电子邮件地址。

否则,您可以将所有电子邮件地址添加到一个 HashSet 中,它会自动为您过滤掉重复项。

重新编写代码:

DataSet ds = DatabaseFunctions.getEmailsBySPROC("getEmailByCircuit", sql_CircuitEmail);

if (ds != null)
{
DataTable table = ds.Tables[0];
HashSet<string> emails = new HashSet<string>();
for (int idx = 0; idx < table.Rows.Count; idx++)
{
emails.Add(table.Rows[idx]["Email"].ToString());
}
}

StringBuilder result = new StringBuilder();
foreach(string email in emails)
{
result.Append(email + ";");
}

emailList = result.ToString();

关于c# - 防止C#中的重复字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1756761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com