这需要分割包含年龄和姓名的数组,然后对name变量执行搜索操作,如果数组中存在姓名,则最后打印年龄。
到目前为止,我只创建了一个2D数组,但不知道如何拆分然后执行搜索
String[,] arr = { { "aakif", "25" }, {"ali", "31"} , {"ben","35"}, {"hassnain" ,"45" } };
我确实不同意您存储输入的方式,但是您可以通过以下方式实现搜索:
String[,] arr = new string[2,4];
arr[0, 0] = "saif";
arr[0, 1] = "25";
arr[0, 2] = "ali";
arr[0, 3] = "17";
arr[1, 0] = "aakif";
arr[1, 1] = "11";
arr[1, 2] = "hassnain";
arr[1, 3] = "50";
int index = -1;
int jindex = -1;
for ( int i =0 ; i <arr.GetLength(0) ; i++) {
for ( int j =0 ; j <arr.GetLength(1) ; j++) {
if (arr[i,j]== "ali") {
index = i;
jindex = j;
break;
}
}
}
if ( index != -1) {
Console.WriteLine(arr[index,jindex] + " " + arr[index,jindex +1 ]);
}
else Console.WriteLine("Not Found");
using System;
namespace ConsoleApp
{
static partial class Program
{
static void Main(string[] args)
{
Test();
Console.WriteLine();
Console.WriteLine("End.");
Console.ReadKey();
}
static void Test()
{
string[,] arr =
{
{ "aakif", "25" },
{ "ali", "31" },
{ "ben", "35" },
{ "hassnain", "45" }
};
string search = "ali";
string age = arr.GetAge(search);
if ( age != null )
Console.WriteLine($"{search} age = {age}");
else
Console.WriteLine($"{search} not found");
}
static string GetAge(this string[,] array, string name)
{
for ( int index = array.GetLowerBound(0); index <= array.GetUpperBound(0); index++ )
if ( array[index, array.GetLowerBound(1)] == name )
return array[index, array.GetUpperBound(1)];
return null;
}
}
}
输出:
ali age = 31
在数组[0,0]的第一个索引中,如果要寻找[Index,1]并打印年龄值,则为[1,0]。
string[,] arr = { { "aakif", "25" }, { "ali", "31" }, { "ben", "35" }, { "hassnain", "45" } };
string search = "ali";
for (int i = 0; i < arr.GetLength(0); i++)
{
if (arr[i,0].ToString() == search)
{
Console.WriteLine(arr[i, 0] + " " + arr[i, 1] + " years old");
}
}