Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何修复堆栈未正确添加行的问题?_C#_.net - Fatal编程技术网

C# 如何修复堆栈未正确添加行的问题?

C# 如何修复堆栈未正确添加行的问题?,c#,.net,C#,.net,现在使用下面的代码,当我尝试调用该方法时,Console.WriteLine(ss[0])返回System.IO.ReadLinesIterator和Console.WriteLine(ss[1])返回此错误:System.IndexOutOfRangeException:“索引超出了数组的边界。”这是我的代码 static Stack<string> Loaded = new Stack<string>(); public static void loadFil

现在使用下面的代码,当我尝试调用该方法时,
Console.WriteLine(ss[0])
返回
System.IO.ReadLinesIterator
Console.WriteLine(ss[1])
返回此错误:
System.IndexOutOfRangeException:“索引超出了数组的边界。”
这是我的代码

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
        }
    }  
静态堆栈加载=新堆栈();
公共静态void加载文件()
{
字符串ii=File.ReadLines(@“D:\test.txt”).ToString();
加载。推(ii);
}  
公共静态void AddValues()
{
while(combos.Count>0)
{
string line=Loaded.Pop();
string[]ss=line.Split(“:”);
Console.WriteLine(ss[0]+“55.65”+ss[1]);//此处出现错误,因为它没有使数组正确,或者什么的,不确定
}
}  
test.txt文件的外观示例如下
值1:值2
值6:值4

我需要的是它获取每一行并分割,给我
Value155.65Value2
文件。ReadLines
返回
IEnumerable
,所以问题是您将
IEnumerable
分配给
string

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

因此,与其

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


只需执行
load=newstack(File.ReadLines(@“D:\test.txt”)

多亏了@khoroshevj

删除.ToString()并改用ReadAllText,您需要类似于
foreach(File.ReadLines(@“D:\test.txt”){Loaded.Push(line);}
@Evk的东西,我尝试了这个方法,但不断出现错误,无法将字符转换为字符串,尽管我甚至尝试了.ToString()@LasseVågsætherKarlsen这是可行的,但现在它的输出像这样
Value2\n Value6
我用来表示换行符,因为它在commentsTry中不起作用,只需执行
load=new Stack(File.ReadLines(@“D:\test.txt”)
string ii = File.ReadAllText(@"D:\test.txt");