使用 .NET 系统将字符数组转换为字符串? [复制]
Posted
技术标签:
【中文标题】使用 .NET 系统将字符数组转换为字符串? [复制]【英文标题】:Char array to a String using .NET system? [duplicate] 【发布时间】:2020-03-25 23:32:01 【问题描述】:如何使用 .NET 将 char 数组的内容存储到 C# 中的文本文件中?我试过了
char[] characters = VarInput.ToCharArray();
System.IO.File.WriteAllText(@"C:\Users\leoga\Documents\Projects_Atom\Pad_Wood\WriteText2CharacterArray.txt", characters);
但它会出现一条错误消息,说
参数 2:无法从 'char[]' 转换为 'string' [C:\Users\leoga\Documents\Projects_Atom\Pad_Wood\converter.csproj]
我也用File.WriteAllLines()
尝试过,但还是不行。我正在使用 c# 和 .NET
【问题讨论】:
VarInput
是什么类型?
@HenkHolterman VarInput 是一个文本字符串
然后WriteAllText(path, VarInput);
是 VarInput.ToCharArray()
仅用于示例目的,并且您的代码确实被传递/提供了 char[]
无法将其与原始 string
关联(或者没有 string
到首先)?或者您确实有一个string
,并且认为它只能作为单独的char
s 写入文件?
【参考方案1】:
原因
由于OP在不需要的时候将字符串转为数组,所以可以直接使用。其他方式
代码 public void Write(string path)
FileStream fs = new FileStream(path, FileMode.Create);
using (fs)
StreamWriter sw = new StreamWriter(fs);
using (sw)
string VarInput = "11111111";
char[] characters = VarInput.ToCharArray();
sw.Write(characters);
About doc
【讨论】:
已更新。感谢您指出。【参考方案2】:应该有一个内置函数在数组上运行连接,转换为字符串。
以下是将数组导出为 CSV 的示例:
String result = String.Join(",",arr)
如果您只想转换为不带任何分隔符的字符串,您可以执行以下操作:
String result = String.Join("",arr)
【讨论】:
将一个空字符串和一个char[]
传递给String.Join()
将是一个效率较低的替代方法,而不是只将char[]
传递给String(char[])
constructor(即String result = new string(arr);
)。【参考方案3】:
VarInput
是什么类型?如果最初是字符串,只需删除 ToCharArray()
调用,即可直接使用 File.WriteAllText
将其写入文件。
File.WriteAllText(path, VarInput);
一旦有了 char 数组,就不必为了写入文件而转换为字符串。也可以直接写字节。
var bytes = System.Text.Encoding.UTF8.GetBytes(characters);
File.WriteAllBytes(path, bytes);
【讨论】:
以上是关于使用 .NET 系统将字符数组转换为字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将带有参数数组的字符串 xml 转换为 .NET Core 中的对象
如何在 JavaScript 中使用字节数组将字符串转换为 base64 编码?