与索引比较查找数组中的值

Find Value in Array Comparing To Index

我正在自学 C#,遇到一个问题让我卡住了。 我需要根据用户的输入找到数组的值。

string[] arr = new string[6];
            arr[0] = "Us";
            arr[1] = "Canada";
            arr[2] = "Uk";
            arr[3] = "China";
            arr[4] = "India";
            arr[5] = "Korea";

Console.WriteLine("Choose a Country (or -1 to quit):");

现在如果用户输入 3 它将 select 中国。

我很困惑如何将用户输入与索引进行比较并获得该值

我试过了,但似乎不起作用:(

int number = Convert.ToInt32(Console.ReadLine());
int arrayindex = Array.IndexOf(arr,number);

I am confused how to compare user input with index and get that value

您可以使用索引器获取您拥有的数组的特定索引处的值。

int number = Convert.ToInt32(Console.ReadLine());
string country = arr[number]; // This will give you China

如果你想确保用户给出的数字是有效的数组索引,那么你可以在使用索引器之前应用条件,它应该是 0 或比数组长度少一。

if(number > -1 && number < arr.Length)
     country = arr[number];

既然你有范围,只要检查输入值是否在范围内。在这种情况下

if (inputvalue >= 0 && inputvalue <= 6) 
  string country = arr[inputValue] // to get the actual content
else
  //invalid input --provided it is not -1

这是一个示例代码,可以执行您想要的操作 - 但是,如果您输入字符串或特殊字符,此代码不会处理错误情况...

using System;

namespace TestConcept
{
    class Program
    {
        static void Main(string[] args)
        {
            string countryCodeStr;
            int contryCodeInt;
            string[] arr = new string[6];
            arr[0] = "Us";
            arr[1] = "Canada";
            arr[2] = "Uk";
            arr[3] = "China";
            arr[4] = "India";
            arr[5] = "Korea";

            do
            {
                Console.WriteLine("Choose a Country Code from 0-5 (or -1 to quit):");
                countryCodeStr = Console.ReadLine();
                contryCodeInt = Convert.ToInt32(countryCodeStr);
                switch (contryCodeInt)
                {
                    case 0:
                        Console.WriteLine("Selected Country :" + arr[0]);
                        break;
                    case 1:
                        Console.WriteLine("Selected Country :" + arr[1]);
                        break;
                    case 2:
                        Console.WriteLine("Selected Country :" + arr[2]);
                        break;
                    case 3:
                        Console.WriteLine("Selected Country :" + arr[3]);
                        break;

                    case 4:
                        Console.WriteLine("Selected Country :" + arr[4]);
                        break;
                    case 5:
                        Console.WriteLine("Selected Country :" + arr[5]);
                        break;

                    default:
                        Console.WriteLine("Invalid selection. Please select -1 to 5");
                        break;
                }
            } while (contryCodeInt != -1);

            if (contryCodeInt == -1)
            {
                Environment.Exit(0);
            }
        }
    }
}