我有一个CSV文件,我想向其中添加一个字符串,但要添加到新列中。我有一个字符串列表,使用“ Add”方法向其中添加新字符串,该方法类似于“ output.Add(stringInQuestion);”。
我已经尝试过将“,”逗号添加到字符串的开头,如下所示:“ output.Add(,,, stringInQuestion);”以及以这种方式向其添加原始列表“ output.Add(output + stringInQuestion);”。这可能是多余的,但我想我会试一试。
///////////////////////////////Block1
var output = new List<string>();
foreach (var contact in contacts)
{
Console.WriteLine($"{contact.FirstName},{contact.LastName},{contact.EmailAddress}");
output.Add($"{contact.FirstName},{contact.LastName},{contact.EmailAddress},{contact.FirstName}-{contact.EmailAddress}-{contact.LastName}");
}
//////////////////////////////////Block2
output.Add(encryptedTextAsBase64);
第一段代码介绍了称为“输出”的字符串列表。它需要一个CSV文件,将字符串分成多个段,然后根据需要对其重新排序。完成此过程后,我使用“ string.Join”方法将字符串连接在一起,然后继续对生成的字符串进行加密。问题是将加密的数据(字符串)放在新的列而不是新的行上。
在Excel中打开的CSV文件应类似于以下示例:
First Name | Last Name | Email Address | Frist Name-Email Address-Last Name| randomgibberishencryptedstringasdkfajsd9f80897gajsbdlkjb23iu8asdf...etc.
将竖线视为新列。 文本改为这样写:
First Name | Last Name | Email Address | Frist Name-Email Address-LastN |
Name1 | LName1 | Email1 | Name1Scrambled-Email1Scrambled |
Name2 | LName2 | Email2 |Etc. |
Etc. | Etc. | Etc. |Etc. |
Encryptedtextonnewrowatbottomoforiginaldataetc...|
答案 0 :(得分:0)
我认为您正在将List
与string
混淆。因此,让我们尝试分解您的代码:
foreach (var contact in contacts)
{
Console.WriteLine($"{contact.FirstName},{contact.LastName},{contact.EmailAddress}");
output.Add($"{contact.FirstName},{contact.LastName},{contact.EmailAddress},{contact.FirstName}-{contact.EmailAddress}-{contact.LastName}");
}
在此foreach循环中,您正在遍历每个联系人,并为每个联系人在名为output
的字符串列表中添加一个字符串。
现在通过致电:
output.Add(encryptedTextAsBase64);
在代码末尾和foreach循环之外,您现在向列表添加了一行,其中仅包含encryptedTextAsBase64
。
因此,与其将其添加到列表的末尾,不如将其添加到每行的末尾。因此,我们必须跳回到您的foreach
循环中才能做到这一点:
foreach (var contact in contacts)
{
Console.WriteLine($"{contact.FirstName},{contact.LastName},{contact.EmailAddress}");
output.Add($"{contact.FirstName},{contact.LastName},{contact.EmailAddress},{contact.FirstName}-{contact.EmailAddress}-{contact.LastName},{encryptedTextAsBase64}");
}
查看如何将encryptedTextAsBase64
添加到output.Add(...)
行的末尾。这样可以确保将加密的文本添加到每个字符串的末尾,而不是列表的末尾。