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

时间:2015-01-06 06:19:02

标签: c# arrays console-application

我正在自己学习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,它将选择中国。

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

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

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

3 个答案:

答案 0 :(得分:2)

  

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

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

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];

答案 1 :(得分:1)

由于您有一个范围,只需检查输入值是否在范围内。在这种情况下

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

答案 2 :(得分:0)

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

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);
            }
        }
    }
}