将List <string>和List <double>保存到.txt文件的特定列中

我有一个C#WinForm应用程序有很多List<string>List<double> 。 我需要创build一个新的.txt文件并将每个List<>保存到文本文件的特定列。

我尝试了WriteAllLines函数,但它写了一个List<>

我也尝试创build一个Excel文件,所以我可以指定我想List<>保存到的列。 但我很难将临时excel文件保存为.txt文件。

我知道这段代码可以将现有的excel文件保存为PDF,但是将excel保存为文本文件的function不存在。

 NewExcelWorkBook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, "Holdings in BE Import Format.txt", Excel.XlFixedFormatQuality.xlQualityStandard, true, false, 1, 10, true); 

请告诉我一种将多个List<>写入特定.txt文件列的方法,或者您可以告诉我如何将excel文件另存为.txt文件。 跳过临时的excel文件将是理想的,但是如果直接写入.txt是困难的,这个解决scheme是可以接受的。

非常感谢!

如果您希望第一列的固定大小为20个字符,则可以尝试以下操作:

 List<string> stringList = new List<string> { "ABCDEF", "DEF", "GHIAAAAAAAAAAAAAA", "SOMETHNG LONGER THAN 20 characters", }; List<double> doubleList = new List<double> { 1d, 2, 3, 4 }; List<string> combined = new List<string>(); int count = stringList.Count >= doubleList.Count ? stringList.Count : doubleList.Count; for (int i = 0; i < count; i++) { string firstColumn = stringList.Count <= i ? "" : stringList[i]; string secondColumn = doubleList.Count <= i ? "" : doubleList[i].ToString(); if (firstColumn.Length > 20) { //truncate rest of the values firstColumn = firstColumn.Substring(0, 20); } else { firstColumn = firstColumn + new string(' ', 20 - firstColumn.Length); } combined.Add(string.Format("{0} {1}", firstColumn, secondColumn)); } File.WriteAllLines("yourFilePath.csv", combined); 

输出文件将如下所示:

 ABCDEF 1 DEF 2 GHIAAAAAAAAAAAAAA 3 SOMETHNG LONGER THAN 4 
  List<string> list1 = new List<string>(); List<int> list2 = new List<int>(); //... string separator = "\t"; using (StreamWriter writer = new StreamWriter(fileName)){ for (int i = 0; i<Math.Max(list1.Count, list2.Count); i++){ var element1 = i < list1.Count ? list1[i] : ""; var element2 = i < list2.Count ? list2[i].ToString() : ""; writer.Write(element1); writer.Write(separator); writer.WriteLine(element2); } }