C# 将文件读入字符串数组并将其打印到文本框中

标签 c#

我的代码有问题,如标题中所述。

所以我想做的是从文件中读取一个数字并将其打印到 TextBox 但我唯一能写的是 System.String[].

这是我的代码:

private void ladenToolStripMenuItem_Click(object sender, EventArgs e)
{
    // Kontostand aus Datei auslesen und in variable speichern anschließend in tb schreiben

    string[] Kontostand = File.ReadAllLines(pathkonto);

    string tbkontostand = Kontostand.ToString();

    this.lbKontostand.Text = "Kontostand: " + tbkontostand + "€";


    string[] Log = File.ReadAllLines(pathlog);

    string LoginTextbox = Log.ToString();

    this.tbLog.Text = LoginTextbox;
}

也许我应该说我的 Kontostand 是一个我想要看起来像那样的标签:

Kontostand: 500 €

我想读出的文件看起来像这样:

500

谢谢你帮助我:)

蒂姆

最佳答案

您没有指定,但看起来您使用的是 Winforms。如果是这样,你应该使用这个:

    string[] Log = File.ReadAllLines(pathlog);

    this.tbLog.Lines = Log;

ToString() 方法的默认行为是只返回对象类型的名称。 string[] 类型不会覆盖默认行为,因此这就是您在文本框中得到的内容。

但是,Winforms TextBox 类有一个类型为 string[]Lines 属性。因此,您只需将其直接设置为您从读取文件中获得的 string[]

在您的原始代码中,您还希望在 Label 文件中包含来自不同来源的行,您可以像这样轻松地做到这一点:

string[] Kontostand = File.ReadAllLines(pathkonto);

this.lbKontostand.Text = "Kontostand: "
    + string.Join("", Kontostand) 
    + "€";

Label 控件没有 Lines 属性,因此在这种特殊情况下,您确实需要使用类似 >string.Join().

由于 Label 控件也没有多行模式,我只是将文件的内容与空字符串作为分隔符连接起来。在这里使用 Environment.NewLine 是没有意义的。您当然可以使用任何您想要的字符串来代替 ""。这取决于你。

现在,从您编辑的问题来看,您可能根本不需要任何类型的多行支持,因为您描述的数据只是一行。如果确实如此,您的代码可以简单得多(并且效率更高):

private void ladenToolStripMenuItem_Click(object sender, EventArgs e)
{
    this.lbKontostand.Text = "Kontostand: "
        + File.ReadAllText(pathkonto)
        + "€";
    this.tbLog.Text = File.ReadAllText(pathlog);
}

就此而言,如果您只是想将文件内容复制到相应的控件中,无论如何都可以这样做。读取数组中的内容,仅将该数组的全部内容复制到控件中,效率低于仅读取所有文件文本并将其直接分配给 Text 属性。换行符将读入 ReadAllText() 返回的字符串中,因此无论文件内容是否真的是多行的,上面的代码应该比您最初尝试做的更好。

关于C# 将文件读入字符串数组并将其打印到文本框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46089679/

相关文章:

c# - 如何使用 C# 检查 PDF Reader 是否启用?

c# - 使用简单注入(inject)器注入(inject) MVC Controller 构造函数时未注册参数

c# - 将 SQL Server Serilog 接收器包装在 Async 中是否有意义?

c# - 计算可能性的数学函数

c# - DDD : Where should I set modified date and modified by? 存储库还是应用程序服务?

c# - 在没有存储过程/避免循环的情况下在 Oracle 表 10g 中批量插入

c# - 如何将 PresentationFramework.Aero 主题添加到 ResourceDictionary

c# - 区分键盘的真实和虚拟按键

c# - Windows Phone 后台传输请求问题

C# 多线程按值传递还是引用传递?