【问题标题】:Using String.Format() Method in .NET 5.0 in C#在 C# 中使用 .NET 5.0 中的 String.Format() 方法
【发布时间】:2023-01-27 01:56:52
【问题描述】:

我是 C# 的新用户,我很难完成我正在处理的这个脚本的最后一件事。我在 .NET 5.0 中。我正在努力将一些结果写入 csv 文件,但是当我使用 string.Format() 方法时,我只得到返回到控制台的第一个值,或者 csv 文件。

string newLine = string.Format("Value1", "Value2");
Console.WriteLine(newLine);

我在一个循环中,所有行都被返回,每行只返回 Value1,而不是 Value2。任何帮助,将不胜感激。

【问题讨论】:

  • 你看过the documentation and examples吗?你在这里期待什么结果,更重要的是,具体为什么你期待那个结果吗?
  • 您不包括格式占位符。
  • 您期望 string.Format("Value1", "Value2") 的结果是什么,文档如何证明这种期望是合理的?
  • 不要手写 CSV 如果 string.Format 对你来说是个问题,使用一个能正确做到这一点的库(好吧,即使你学会了 string.Format 也不要手写 CSV)。

标签: c# .net


【解决方案1】:

我认为您根本不了解string.Format() 是如何工作的。第一个参数是一个基本字符串,它应该包括占位符(即:{0}{1} 等)。然后附加参数按顺序填充占位符。

所以如果你想要 CSV 数据,听起来你想要更像这样的东西:

string newLine = string.Format("{0},{1}", "Value1", "Value2");
Console.WriteLine(newLine);

或者来自这样的数组:

string[] row = {"Value1", "Value2"};
string newLine = string.Format("{0},{1}", row);
Console.WriteLine(newLine);

或者你可能更喜欢string.Join(),它可以处理任意数量的值而不需要占位符:

string[] row = {"Value1", "Value2"};
string newLine = string.Join(",", row);
Console.WriteLine(newLine);

但实际上,即使是简单的 CSV 文件也有数量惊人的边界情况和陷阱,从 NuGet 获取 CSV 库可能会好得多。

【讨论】:

  • 这个我比较明白了,谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-10-16
  • 2018-02-10
  • 2021-12-06
  • 2013-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多