我的代码中有一个字符串,用于连接数据库中各个表的电子邮件地址,然后在cc字段中显示在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() + ";";
}
}
Run Code Online (Sandbox Code Playgroud)
这就是从一个表中退出的代码..
还有另一个代码从另一个表中检索.. \和字符串是电子邮件列表分开; 分号
BFr*_*ree 20
第一个也是最明显的建议是在数据库方面过滤掉它; 这意味着当从DB中检索数据时,如果可能,添加"distinct"子句,以便您只获得不同的电子邮件地址.
否则,您可以将所有电子邮件地址添加到HashSet <string>,它会自动为您过滤掉重复项.
你的代码:
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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |