如何将字符串添加到新列而不是新行?

时间:2019-07-09 14:55:58

标签: c# .net-core

我有一个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...|

1 个答案:

答案 0 :(得分:0)

我认为您正在将Liststring混淆。因此,让我们尝试分解您的代码:

 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(...)行的末尾。这样可以确保将加密的文本添加到每个字符串的末尾,而不是列表的末尾。