C# C“尝试读取时控制台程序Linq错误”;按任意键继续“;

C# C“尝试读取时控制台程序Linq错误”;按任意键继续“;,c#,C#,我有 我正试图让它与以下代码一起工作 Console.WriteLine("\n"); Console.WriteLine("Press any key to continue..."); 它会导致错误或显示错误(在单词之前,在单词的中间,而不是在页面的最末端)。我知道这似乎是一个简单的问题,但我非常困惑和迷茫。我似乎不知道我做错了什么?任何帮助都太好了 这是针对一项任务,该任务应: 创建一个字符串列表 使用Console.ReadLine()收集firstName、lastName、stre

我有

我正试图让它与以下代码一起工作

Console.WriteLine("\n");
Console.WriteLine("Press any key to continue...");

它会导致错误或显示错误(在单词之前,在单词的中间,而不是在页面的最末端)。我知道这似乎是一个简单的问题,但我非常困惑和迷茫。我似乎不知道我做错了什么?任何帮助都太好了

这是针对一项任务,该任务应:

  • 创建一个字符串列表

  • 使用Console.ReadLine()收集firstName、lastName、street、city、state、zip的值,并将它们保存到列表中

  • 编写一个简单的Linq语句,调用方法UppercaseWords()将第一个字母改为大写

  • 创建foreach语句以显示信息

  • 所以我相信我的每件事都能正常工作,但我不明白为什么程序中最简单的部分不能正常工作

    任何帮助都将不胜感激。非常感谢你

    既然你说“任何帮助都将不胜感激”,我想我会花一些时间来分享一些关于如何使你的程序更好的想法。我并不是说这是做这件事的唯一方法,甚至是最好的方法,但希望它能让你思考和提高你的技能

    作为一名程序员,你的目标之一应该是尽可能少地编写代码。下面是您的一些代码重复执行相同的操作,只需稍作更改

    Console.WriteLine("\n");
    Console.WriteLine("Press any key to continue...");
    
    通过去除所有重复的代码,我们可以做得更好:首先要注意的是,唯一的区别是您输入的数据的“名称”,因此将所有名称收集到一个位置:

       Console.Write("Enter First Name: ");
       details.Add(Console.ReadLine());
       Console.Write("Enter Last Name: ");
       details.Add(Console.ReadLine());
    
    现在,所有数据都可以通过一行输入:

    static string ReadDataPairFromConsole( string DataName )
    {
        Console.Write("Enter {0}: ", DataName );
        return Console.ReadLine();
    }
    
    因为每个单词都需要大写,所以代码可以按照您编写的逻辑处理整个输入列表。但是,也可以在输入时对每个输入进行如下处理:

    DataNames.ForEach(name => details.Add(ReadDataPairFromConsole(name)));
    
    您还可以利用内置函数在单个字上执行FirstLetterUpper(有几个边缘情况未检查):

    我还将进行许多其他更改,例如使用pairs来保持输入标签与输入字符串匹配。然后,当数据输出时,就知道每个片段是什么了


    祝你学习顺利。

    你把“Console.WriteLine(\n”);Console.WriteLine(“按任意键继续…”);行”放在哪里了?我把它放在这两行之间后,它就工作了。但我不确定这是否正确?foreach(结果中的var项){Console.WriteLine({0}),item);}Console.WriteLine(“\n”)//所以它显示了一个空间控制台;Console.ReadLine();}public static string UppercaseWords(string value)用ReadLine结束Console主函数是个坏主意,因为如果从命令提示符运行程序(Console程序的用途),它仍将等待用户输入,并且由于控制台将保持打开状态,因此无故结束,从用户的角度来看,这是不必要的,因此很烦人。只需删除读线和“按任意键继续”,如果在Visual Studio中启动程序,请使用Ctrl+F5而不是F5,这将使控制台窗口保持打开状态,并自动打印“按任意键”消息。
    static string ReadDataPairFromConsole( string DataName )
    {
        Console.Write("Enter {0}: ", DataName );
        return Console.ReadLine();
    }
    
    DataNames.ForEach(name => details.Add(ReadDataPairFromConsole(name)));
    
    static string ReadDataPairFromConsole( string DataName )
    {
        Console.Write("Enter {0}: ", DataName );
        return FirstLetterUpper(Console.ReadLine());
    }
    
     var upWord = char.ToUpper(InputString[0]) + InputString.Substring(1);