当我为列表运行.RemoveAt()时,C#程序退出

当我为列表运行.RemoveAt()时,C#程序退出,c#,C#,我在试着理解C。在我试图从列表中删除一项之前,一切都很顺利 当程序到达mylist.RemoveAt(0)所在的代码时,它就退出了。它甚至没有显示错误,只是使用代码(0)退出 我希望字符串被删除,并且在“next enter…”和“应该有…”之间不会显示任何内容 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 使用System.Threading.Tasks; 名称空间理解 { 班级计划 { 静态void Main(字符串[]

我在试着理解C。在我试图从列表中删除一项之前,一切都很顺利

当程序到达mylist.RemoveAt(0)所在的代码时,它就退出了。它甚至没有显示错误,只是使用代码(0)退出

我希望字符串被删除,并且在“next enter…”和“应该有…”之间不会显示任何内容

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
名称空间理解
{
班级计划
{
静态void Main(字符串[]参数)
{
List mylist=新列表();
Add(“这是我第一次添加到列表中”);
for(int i=0;i
使用ReadLine()而不是Read()。问题是在第一次读取时,它仍在等待Enter继续。然后它只是滚动到第二个Read()语句。逻辑很好,只是在控制台中看不到结果

List<string> mylist = new List<string>();

mylist.Add("this is my first addition to the list");
for(int i = 0; i < mylist.Count; i++)
{
    Console.WriteLine(mylist[i]);
}
Console.WriteLine("next enter will delete the first entry");
Console.ReadLine();
mylist.RemoveAt(0);

for (int i = 0; i < mylist.Count; i++)
{
    Console.WriteLine(mylist[i]);
}
Console.WriteLine("there should not have been any entry between this and the last time");
Console.ReadLine();
List mylist=new List();
Add(“这是我第一次添加到列表中”);
for(int i=0;i
。您是否收到任何类型的退出代码或错误消息?用try/catch环绕您的代码并写出任何异常-现在发生了什么?这如何解决问题?即使OP还没有发布,你怎么能确定问题出在哪里呢?问题是当你在控制台中键入一个字符时,程序刚刚退出。OP的代码运行得很好,只是他从未看到结果,因为控制台窗口立即关闭。使用ReadLine,它会等待返回运行,然后在关闭之前等待其他输入。OP表示它退出,代码为0。它运行时,他根本看不到结果,因为它处理Read()语句而实际上没有停止fair point。。。这也许就是答案,对不起,我对你太苛刻了。如果你编辑你的答案,我很乐意将我的反对票改为赞成票(因此,我不想改变它),这是正确的答案,即使给出的原因不清楚。为了澄清,通过使用Console.Read(),程序正在从用户捕获回车符(\r\n),从技术上讲,这是两个独立的ASCII码。第一个Console.Read()捕获\r,而第二个Console.Read()捕获,导致程序立即退出。这可以通过将Console.Read()存储在变量中,然后使用Console.WriteLine()查看结果来验证。第一个生成ASCII码13(回车),第二个生成ASCII码10(新行)。
List<string> mylist = new List<string>();

mylist.Add("this is my first addition to the list");
for(int i = 0; i < mylist.Count; i++)
{
    Console.WriteLine(mylist[i]);
}
Console.WriteLine("next enter will delete the first entry");
Console.ReadLine();
mylist.RemoveAt(0);

for (int i = 0; i < mylist.Count; i++)
{
    Console.WriteLine(mylist[i]);
}
Console.WriteLine("there should not have been any entry between this and the last time");
Console.ReadLine();