我是編程的初學者,我很難分析和調試如何跳過閱讀csv文件的第一行。我需要一些幫助。
我需要我的ID來填充我的表單中的組合框,其中包含所有的 Id's.爲了不包含標題在瀏覽和 顯示。我需要跳過第一行。跳過閱讀csv文件的第一行
public bool ReadEntrie(int id, ref string name, ref string lastname, ref
string phone, ref string mail, ref string website)
{
int count = 0;
CreateConfigFile();
try
{
fs = new FileStream(data_path, FileMode.Open);
sr = new StreamReader(fs);
string temp = "";
bool cond = true;
while (cond == true)
{
if ((temp = sr.ReadLine()) == null)
{
sr.Close();
fs.Close();
cond = false;
if (count == 0)
return false;
}
if (count == id)
{
string[] stringSplit = temp.Split(',');
int _maxIndex = stringSplit.Length;
name = stringSplit[0].Trim('"');
lastname = stringSplit[1].Trim('"');
phone = stringSplit[2].Trim('"');
mail = stringSplit[3].Trim('"');
website = stringSplit[4].Trim('"');
}
count++;
}
sr.Close();
fs.Close();
return true;
}
catch
{
return false;
}
}
您可以使用'var line = File.ReadLines(fileName).Skip(id).FirstOrDefault()'而不是打擾流獲取所需的一行。如果id> 0,那麼你總是會跳過第一行,但是如果id可以是0,那麼你只需要執行'Skip(id + 1)'。 – juharr
有一些錯誤:1)在''if''設置'cond'爲false的塊中,您正在關閉'sr'和'fs',但是當計數不是'0'時,您在結束時再次關閉它'while'循環。我想這會導致異常。 2)與前面的情況相同,但在下一個if語句中會失敗。當'temp'爲'null'且運氣不好時'count'等於'id',那麼你試圖訪問'null.Split(',');'但是它會導致異常。我會推薦擴展'如果(count == 0)返回false;'用'else返回true;' –