显示从 text.file 到数组 c# 的 lins

本文关键字:lins 数组 text file 显示 | 更新日期: 2023-09-27 18:35:26

我正在尝试将txt文件中的行读取到数组中并将其显示在文本框中。这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack != true)
    {
        blogPostTextBox.Text ="";
        string blogFilePath = Server.MapPath("~") + "/Blogs.txt";
        string[] blogMessageArray = File.ReadAllLines(blogFilePath);
        // this for loop code does not work..I think.. 
        for (int i = 0; i < blogMessageArray.Length; i++)
        {
            string[] fileLineArray = blogMessageArray[i].Split(' ');
            blogPostTextBox.Text = blogMessageArray[i] + System.Environment.New Line.ToString();
        }   
    }
}

我的文本文件包含几行,我正在尝试将每行拆分为数组,并使用 for 循环或 while 循环将所有行显示到文本框中。

显示从 text.file 到数组 c# 的 lins

更新:

对于 ASP.Net

var items =File.ReadAllLines(blogFilePath).SelectMany(line => line.Split()).Where(x=>!string.IsNullOrEmpty(x));
blogPostTextBox.Text=string.Join(Environment.NewLine, items)

作为旁注,当您从多个字符串构建路径时,最好使用 Path.Combine

string blogFilePath = Path.Combine( Server.MapPath("~") , "Blogs.txt");

if (IsPostBack != true)也是有效的,但你可以这样做

if (!IsPostBack)

温福

如果文本框控件的 Multiline 属性设置为 true,则可以使用 TextBoxBase.Lines Property

blogPostTextBox.Lines =File.ReadAllLines(blogFilePath);

如果您需要拆分每一行并设置为文本框文本,那么

blogPostTextBox.Lines = File.ReadAllLines(blogFilePath).SelectMany(line => line.Split()).ToArray();

您必须在TextBox中设置TextMode="MultiLine"(默认值为 SingleLine ),然后您可以使用 Linq 以这种方式构建文本:

var allLinesText = blogMessageArray
     .SelectMany(line => line.Split().Select(word => word.Trim()))
     .Where(word => !string.IsNullOrEmpty(word));
blogPostTextBox.Text = string.Join(Environment.NewLine, allLinesText);
您需要将

每一行附加到文本框中。您在上面所做的是用每个新行覆盖文本框的内容。

string[] blogMessageArray = File.ReadAllLines("");
blogPostTextBox.Text = "";
foreach (string message in blogMessageArray)
{
    blogPostTextBox.Text += message + Environment.NewLine;
}

虽然与其读出所有行,然后写出所有行,为什么不把所有文本都写到文本框里呢?

blogPostTextBox.Text = File.ReadAllText();

虽然你可以在循环中执行此操作,但你真的不需要(或不想这样做)

内置的点网方法替换您的循环,这些方法实际上可以满足您的需求。

See String.Join()
public static string Join(
    string separator,
    params string[] value
)

这会将 blogMessageArray 的所有元素与您指定的分隔符相结合。("'"在您的情况下,HTML 不需要"''r'")

然后只需将其分配给属性 blogPostTextBox.Tex