第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

“foreach(fileInfo 中的 var line)” 僅讀取第一行

“foreach(fileInfo 中的 var line)” 僅讀取第一行

C#
慕妹3146593 2023-09-09 16:59:15
當(dāng)我迭代時(shí),我的代碼僅生成文本文件的第一行。我頑固地使用 foreach 循環(huán),但我發(fā)現(xiàn)的一切都表明這應(yīng)該有效。    public void Button3_Click(object sender, EventArgs e)    {        using (OpenFileDialog openFileDialog = new OpenFileDialog())        {            openFileDialog.InitialDirectory = "c:\\";            openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";            openFileDialog.FilterIndex = 2;            openFileDialog.RestoreDirectory = true;            DialogResult result = openFileDialog.ShowDialog();            path = openFileDialog.FileName;            //checkedTb.Text = fileInfo;            count = File.ReadLines(path).Count();            // checkedTb.Text = path;        }    }    public async void StartBtn_Click(object sender, EventArgs e)    {        StreamReader reader = new StreamReader(path);        fileInfo = await reader.ReadLineAsync();        foreach (var line in fileInfo)        {            checkedTb.Text += fileInfo;        }    }我希望它能夠讀取所有內(nèi)容,因?yàn)檫@就是“foreach(fileInfo 中的 var line)”的用途。提前感謝大家抽出時(shí)間!非常感激!
查看完整描述

2 回答

?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

目前,您正在迭代一行中的每個(gè)字符。如果您想迭代文件中的每一行,您需要類似以下內(nèi)容:


using (var reader = File.OpenText(path))

{

    string line;

    while ((line = await reader.ReadLineAsync()) != null)

    {

        // Use the line here

    }

}

請(qǐng)注意,當(dāng)前您將每一行附加到checkedTb.Text,沒有換行符,因此您最終將獲得文件中的所有文本,但在一行中。如果這不是您想要的,您需要準(zhǔn)確地弄清楚您想要什么,以便做出適當(dāng)?shù)母淖儭?/p>


目前,在異步代碼中使用foreach循環(huán)(而不是循環(huán))比較棘手,但在 C# 8 中會(huì)變得更容易。您需要返回一個(gè) 的東西,如果框架不提供它,您可以自己編寫它。(我希望在某個(gè)時(shí)候有一個(gè)方法。)如果您愿意一次性閱讀整個(gè)文件,那么已經(jīng)有一個(gè)方法- 返回一個(gè). 您可以將其用作:whileIAsyncEnumerable<string>File.ReadLinesAsyncFile.ReadAllLinesAsyncTask<string[]>


var lines = await File.ReadAllLinesAsync(path);

foreach (var line in lines)

{

    ...

}

但是,如果文件非常大,那么在讀取文件時(shí)顯示進(jìn)度方面可能不是您想要的。


查看完整回答
反對(duì) 回復(fù) 2023-09-09
?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

使用 reader.ReadToEndAsync 會(huì)更精確,您可以獲得文件的所有內(nèi)容,然后您可以迭代每一行


public static async void Click()

        {

            StreamReader reader = new StreamReader(@"D:\Bhushan\a.txt");

            var fileContent = await reader.ReadToEndAsync();

        }


查看完整回答
反對(duì) 回復(fù) 2023-09-09
  • 2 回答
  • 0 關(guān)注
  • 166 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)