Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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#_Arrays_String_Arraylist_User Input - Fatal编程技术网

C#:使用字符串数组列表检查用户输入 基本信息

C#:使用字符串数组列表检查用户输入 基本信息,c#,arrays,string,arraylist,user-input,C#,Arrays,String,Arraylist,User Input,编程语言:C#(C Sharp) Console.Write("Enter a month?: "); var userMonth = (Console.ReadLine()); var months = GetMonths(); var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList(); 程

编程语言:C#(C Sharp)

          Console.Write("Enter a month?: ");
          var userMonth = (Console.ReadLine());
          var months = GetMonths();

          var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
  • 程序类型:Console.Net Core 2.0应用程序

  •           Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
  • IDE:视觉工作室社区2017 v15.8.7

  •           Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    程序信息 程序名:日历计数器

              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    我的程序基础知识:用户输入一个月的时间,并告诉他们该月有多少天。用户可以自由键入月份名称/标识的任何已知组合(例如三月、三月、三月、三月、三月、三月、三月、三月、三月、三月、三月、三月或三月三)

              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    我的程序执行:程序要求用户输入一个月的时间,然后用户输入。然后,程序用字符串数组检查用户对名为MonthDatabase()的方法键入的内容。如果匹配,它将显示他们输入的月份以及有多少天

              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    问题信息 程序问题:我的主要问题是如何用字符串数组中的内容检查用户输入的内容。我尝试过开关和不同的if语句,但大多数都会给我一个错误(我不会发布所有这些)。我还试着用字典和列表。每个人都有自己的错误。所以我回到了使用字符串数组,在多次搜索之后,尝试了一些根本不起作用的东西。我甚至尝试在谷歌上搜索我想要完成的任务(例如,用字符串数组检查用户输入),但都没有成功。目前,我得到的错误是:

              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    对实例方法的委托不能具有null“this”

              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    现在对于C#(以及一般的编程)来说是新手,我只能假设它希望我指定在字符串数组中检查什么以匹配用户输入。我试过这样的方法:

    Console.Write("Enter a month?: ");
    string userMonth = (Console.ReadLine());
    
    if (userMonth == mData(1, 1)) //Compare user input to MonthDataBase
            {
                Console.WriteLine("You typed a word found in the datatbase.");
            }
            else
            {
                Console.WriteLine("You didn't type a word in the datatbase.");
            }
    
              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    

              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    我认为它会在那个位置看字符串并匹配它,但很明显,我在这个假设上是错的。我甚至试着用谷歌搜索,看看是否有一种方法可以简单地将用户键入的内容与整个字符串数组进行匹配,但什么也没找到

              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    我花了一周的时间试图弄明白这一点,并决定来这里看看是否有人能为我指明正确的方向。我喜欢学习它的想法,所以如果可能的话,没有直接的答案,比如“做这个”,它会起作用。也许是一个例子(不同,但接近我想做的)或“阅读此文”,它应该会帮助你

              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    代码
  • 尝试将
    MonthDataBase
    方法的返回类型更改为
    List

  •           Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
  • 尝试将
    mData
    public属性的签名更改为
    public static List mData{get;private set;}

  •           Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
  • ccdatabase
    方法中填写上述属性
    mData
    ,如
    mData=MonthDataBase()

  •           Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
  • 然后检查输入的字符串是否存在于
    mData

  •           Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    因此,您的程序最终将是

    class Program
    {
        public static List<List<string>> mData { get; private set; } //Use mData in any method.
    
        static void Main(string[] args)
        {
            Header();       // Call Header Method & display
            Menu();         // Call Menu Method & display
            CCDatabase();   // Call Calendar Counter Database Method, execute & display.
    
            //Console.WriteLine("Hello World!");
            ExitProgram(); //Call exit program, execute & display
        }
    
        static void Header()
        {
            Console.Clear(); //Clear console buffer & console window of display information
            Console.Write("--------------------\n| Calendar Counter |\n--------------------\n"); //Display Header text
        }
    
        static void Menu()
        {
            //ADD menu options once basic program is working!!
            Console.WriteLine(); //Space
            Console.Write("MENU: //ADD menu options once basic program is working!!");
            Console.WriteLine("\n"); //Double Space
        }
    
        static void CCDatabase()
        {
            mData = MonthDataBase();
            Console.Write("Enter a month?: ");
            string userMonth = (Console.ReadLine());
    
            if (mData.Any(x => x.Contains(userMonth))) //Compare user input to MonthDataBase
            {
                var month = mData.Where(x => x.Contains(userMonth)).Select(x => new { Days = x[0], Name = x[1] }).FirstOrDefault();
                Console.WriteLine($"{month.Name} has {month.Days} days in it.");
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine("You didn't type a word in the database.");
                Console.WriteLine();
            }
        }
    
        public static List<List<string>> MonthDataBase() //Month Database
        {
            var mData = new List<List<string>>  {
          new List<string>  { "31", "January", "january", "Jan", "jan", "Jan.", "jan.", "1", "01" }, //If user types 1-8 display corresponding message in CCDatatbase()
          new List<string>  { "28/29", "February", "february", "Feb", "feb", "Feb.", "feb.", "2", "02" },
          new List<string>  { "31", "March", "march", "Mar", "mar", "Mar.", "mar.", "3", "03" },
          new List<string>  { "30", "April", "april", "Apr", "apr", "Apr.", "apr.", "4", "04" },
          new List<string>  { "31", "May", "may", "May", "may", "May", "may", "5", "05" },
          new List<string>  { "30", "June", "june", "Jun", "jun", "Jun.", "jun.", "6", "06" },
          new List<string>  { "31", "July", "july", "Jul", "jul", "Jul.", "jul.", "7", "07" },
          new List<string>  { "31", "August", "august", "Aug", "aug", "Aug.", "aug.", "8", "08" },
          new List<string>  { "30", "September", "september", "Sep", "sep", "Sep.", "sep.", "9", "09" },
          new List<string>  { "31", "October", "october", "Oct", "oct", "Oct.", "oct.", "10", "10" },
          new List<string>  { "30", "November", "november", "Nov", "nov", "Nov.", "nov.", "11", "11" },
          new List<string>  { "31", "December", "december", "Dec", "dec", "Dec.", "dec.", "12", "12" }
        };
    
            return mData;
        }
    
        static void ExitProgram()
        {
            //REPLACE later with an actual exit option in menu!!
            Console.Write("EXIT: //REPLACE later with an actual exit option in menu!!\n\n");
            //Prevent Debugging test from closing.
            Console.Write("Press any key to Exit...");
            Console.ReadLine();
        }
    }
    
              Console.Write("Enter a month?: ");
              var userMonth = (Console.ReadLine());
              var months = GetMonths();
    
              var result = months.Where(x => x.MonthNames.Any(y => y.Equals(userMonth))).ToList();
    
    类程序
    {
    公共静态列表mData{get;private set;}//在任何方法中使用mData。
    静态void Main(字符串[]参数)
    {
    Header();//调用Header方法和显示
    Menu();//调用菜单方法和显示
    CCDatabase();//调用日历计数器数据库方法,执行并显示。
    //控制台。WriteLine(“你好,世界!”);
    ExitProgram();//调用exit程序,执行并显示
    }
    静态空标头()
    {
    Console.Clear();//清除控制台缓冲区和显示信息的控制台窗口
    Console.Write(“-----------------------\n |日历计数器|\n-------------------\n”);//显示标题文本
    }
    静态无效菜单()
    {
    //在基本程序运行后添加菜单选项!!
    Console.WriteLine();//空格
    编写(“MENU://在基本程序运行后添加菜单选项!!”;
    Console.WriteLine(“\n”);//双空格
    }
    静态数据库()
    {
    mData=MonthDataBase();
    控制台。写入(“输入月份:”;
    字符串userMonth=(Console.ReadLine());
    if(mData.Any(x=>x.Contains(userMonth))//将用户输入与MonthDataBase进行比较
    {
    var month=mData.Where(x=>x.Contains(userMonth)).Select(x=>new{Days=x[0],Name=x[1]}.FirstOrDefault();
    WriteLine($“{month.Name}中有{month.Days}天。”);
    Console.WriteLine();
    }
    其他的
    {
    WriteLine(“您没有在数据库中键入单词。”);
    Console.WriteLine();
    }
    }
    公共静态列表MonthDataBase()//月数据库
    {
    var mData=新列表{
    新列表{“31”、“一月”、“一月”、“一月”、“一月”、“一月”、“一月”、“一月”、“一月”、“一月”、“1”、“01”},//如果用户类型1-8在CCDatatbase()中显示相应的消息
    新名单{“28/29”、“2月”、“2月”、“2月”、“2月”、“2月”、“2月”、“2月”、“2月”、“2月”、“2月”},
    新名单{“31”、“3”、“3”、“3”、“3”、“3”、“3”、“3”、“3”、“3”、“3”},
    新名单{“30”、“4”、“4”、“4”、“4”、“4”、“4”、“4”、“4”、“4”、“4”},
    新名单{“31”、“5”、“5”、“5”、“5”、“5”、“5”、“5”、“5”},
    新名单{“30”、“6”、“6”、“6”、“6”、“6”、“6”、“6”、“6”、“6”、“6”、“6”},
    新名单{“31”、“7”、“7”、“7”、“7”、“7”、“7”、“7”、“7”、“7”、“7”},
    新名单{“31”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”},
    新名单{“30”、“9”、“9”、“9”、“9”、“9”、“9”、“9”、“9”、“9”、“9”},
    新名单{“31”、“10”、“10”、“10”、“10”、“10”、“10”、“10”、“10”、“10”、“10”},
    新名单{“30”、“11”、“11”、“11”、“11”、“11”、“11”、“11”、“11”、“11”、“11”},
    新名单{“31”、“12”、“12”、“12”、“12”、“12”、“12”、“12”、“12”、“12”}
    };
    返回mData;
    }
    静态无效退出程序()
    {
    //稍后替换为菜单中的实际退出选项!!
    Console.Write(“EXIT://稍后替换为菜单中的实际退出选项!!\n\n”);
    //阻止调试测试关闭。
    控制台。写入(“按任意键退出…”);