我需要发送一些pdf文件作为存储在数据库中的电子邮件附件。
我需要将逗号分隔的字符串转换为List<string>
并尝试使用此c#代码:
if (reader.HasRows)
{
while (reader.Read())
{
RecoveryAtt = reader["Att"].ToString();
string Commaseplist;
string[] itemList = { RecoveryAtt.ToString() };
Commaseplist = String.Join("; ", itemList);
Response.Write(Commaseplist.ToString());
}
}
但在输出中我有:
D:\inetpub\wwwroot\app\public\015.pdfD:\inetpub\wwwroot\app\public\016.pdfD:\inetpub\wwwroot\app\public\017.pdfD:\inetpub\wwwroot\app\public\018.pdfD:\inetpub\wwwroot\app\public\019.pdf
在电子邮件附件中首先只有Pdf文件......
这不起作用导致返回没有分隔符的字符串[]。
请帮忙。
答案 0 :(得分:0)
每次读取数据库中的新行并因此丢失以前的数据时,您将重新创建itemList
数组和Commaseplist
字符串。输出会连续输出一次并附加 - 您不会添加到数组中。
也许更好的方法是:
if (reader.HasRows)
{
StringBuilder commaList = new StringBuilder();
while (reader.Read())
{
commaList.Append(reader["Att"].ToString());
commaList.Append(",");
}
commaList.Remove(commaList.Lenth-1,1);
Response.Write(commaList.ToString());
}
答案 1 :(得分:0)
我认为这会解决问题
string[] itemList = Regex.Split(RecoveryAtt, @"(?=D:)").Where(x => !string.IsNullOrEmpty(x)).ToArray();
Commaseplist = String.Join("; ", itemList);
Response.Write(Commaseplist);