与索引比较查找数组中的值
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);
}
}
}
}
我正在自学 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);
}
}
}
}