如何修复堆栈不正确添加线路



现在使用以下代码,当我尝试调用该方法时,Console.WriteLine(ss[0])返回System.IO.ReadLinesIteratorConsole.WriteLine(ss[1])返回此错误:System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'这是我的代码

static Stack<string> Loaded = new Stack<string>();  

public static void loadFile()
    {
        string ii = File.ReadLines(@"D:test.txt").ToString();
        Loaded.Push(ii);
    }  

        public static void AddValues()
    {
        while (combos.Count > 0)
        {
            string line = Loaded.Pop();
            string[] ss = line.Split(':');
            Console.WriteLine(ss[0] + "55.65" + ss[1]); // error here because it isn't making the array right or something, not sure
        }
    }  

test.txt文件的示例是
Value1:Value2
值6:value4
我需要的是乘每行并分开给我Value155.65Value2

File.ReadLines返回IEnumerable<string>,因此问题是您将IEnumerable<string>分配给string

您需要的是File.ReadAllText。此方法只是返回字符串。

所以,而不是

string ii = File.ReadLines(@"D:test.txt").ToString();

使用

string ii = File.ReadAllText(@"D:test.txt");

简单地做Loaded = new Stack<string>(File.ReadLines(@"D:test.txt"));
感谢@khoroshevj

最新更新