我正在自己学习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);
答案 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);
}
}
}
}