列表值未存储

时间:2017-05-18 10:10:26

标签: c# list text-files textreader file.readalllines

有人可以告诉我我缺少什么,该课程从文本文件中读取值并存储它们以供其他用途,我可以看到值 string[]但我无法保存这些价值观。我试过用了 List<string>class test { public void tryOut() { #region file.read try { string fileLocation = @"shelfInfo.txt"; List<string> cells = File.ReadAllLines(fileLocation).ToList(); aray(cells); } catch { new FileNotFoundException(); } #endregion } public void aray(List<string> cells) { string[] t = new string[20]; string[] k = new string[20]; string a = "", b = "", c = "", d = ""; int i = 0; foreach (string cell in cells) { string[] eachCell = cell.Split('@', '\t', '\n'); a = t[0] = eachCell[0].ToString(); //Consol.Write on eachCell directly shows the right values. b = t[1] = eachCell[1].ToString(); c = t[2] = eachCell[2].ToString(); d = t[3] = eachCell[3].ToString(); for (; i < eachCell.Length; i++) { k[i] = a; //should store the values from eachCell } } Console.Write(" " + a + " " + b + " " + " " + c + " " + d); //means the value are being receivedbut no stored } } // contents of text file //A11[1]@ A12[0]@ A13[1]@ A14[1]@ //A21[1]@ A21[1]@ A23[0]@ A24[0]@ //A31[1]@ A32[0]@ A33[1]@ A34[1]@ //A41[1]@ A41[1]@ A43[0]@ A44[0]@ ,但没有运气。它应该将正在读取的值存储到列表或数组中,但到目前为止它不是。控制台上没有显示任何内容。

{{1}}

我也很感谢有关异常处理的任何提示。

1 个答案:

答案 0 :(得分:1)

您的程序没有返回任何内容,因为您使用以下代码。

catch { new FileNotFoundException(); }

Console.Write不返回任何内容只是因为异常被捕获但它没有抛出新的异常。有一个例外,因为eachCell不包含4个元素,并且您尝试访问该元素。事实上,除非您想手动处理此异常,否则您不必执行try-catch。如果该文件不存在,则会自动抛出FileNotFoundException。如下更改tryOut方法。

public void tryOut()
{
    #region file.read
    var fileLocation = @"Path";
    aray(File.ReadAllLines(fileLocation).ToList());
    #endregion
}

public static void aray(List<string> cells)
{
    List<string> t = new List<string>();
    foreach (string cell in cells)
    {
        string[] eachCell = cell.Split('@', '\t');
        foreach (var e in eachCell)
        {
            t.Add(e);
        }
    }
    foreach (var e in t)
    {
        Console.WriteLine(e);
    }
}