2016-03-31 3 views
-2

Я хочу искать значения внутри некоторых массивов, например. позволяет сказать, у меня есть 3 массива:C# Поиск значения внутри массива

int[] Year = {1930, 2000, 2020}; 

string[] Months = {"January", "May", "December"}; 

int[] NumOfCars = {10, 5, 200}; 

Так позволяет сказать, что я хочу, чтобы найти, сколько автомобилей есть в 2000 году, я хочу, чтобы иметь возможность получить результат, как:

RESULT: 2000, May, 5 

Как я смогу это сделать. Благодаря

отредактирован:

Я хочу, чтобы пользователь, для поиска значения без них, зная значения, например для Console.WriteLine("Search a Year");, и они помещают 2000 год, а затем программа отображает результат.

RESULT: 2000, May, 5 

ответ

0

на основе ваших массивов и вашего описания, это звучит, как вы хотите, чтобы найти значение в одном массиве, а затем искать информацию в двух других на основе позиции, которую вы нашли в первом.

public string LookUpValues(string year) 
{ 

    for(var ii = 0; ii < Year.Length; ii++) 
    { 
     if(Year[ii] == year) 
     { 
     return Year[ii] + ", " + Months[ii] + ", " + NumOfCars[ii] 

     } 
    } 
} 
+0

Привет, да, я хочу, чтобы найти значение в одном массиве а затем просмотрите информацию, но я хочу, чтобы пользователь искал значение, не зная значения, например Console.WriteLine («Поиск года»); и они помещают 2000 год, а затем программа отображает результат. – 1111

3

Если ваша структура проста, то ответа Кевина достаточно.

Но если у вас есть более сложные структуры, вы могли бы

//Make a model of you data 
public class L { 
    public int Year {get; set;} 
    public string Months {get; set;} 
    public int NumOfCars {get; set;} 
} 

void Main() 
{ 

    List<L> myList = new List<L>(); 

    //Load you arrays into the structure 
    myList.Add(new L { Year = 1930, Months = "January", NumOfCars = 10}); 
    myList.Add(new L { Year = 2000, Months = "May", NumOfCars = 5}); 
    myList.Add(new L { Year = 2030, Months = "December", NumOfCars = 30}); 

    //Use LINQ 
    var r = myList.Where(x => x.Year == 2000).Select(x => x); 

    Console.Write(r); 
} 
+0

Я думаю, что это лучший ответ. Если эти массивы говорят об одном и том же, создание класса, а затем его сохранение в списке, по-видимому, является самой организованной идеей. – Octanic

0

Вы можете сделать поиск с простым линейным поиском следующим

using System; 
class Find 
{ 
    public static void Main() 
    { 
     int[] Year = {1930, 2000, 2020}; 
     string[] Months = {"January", "May", "December"}; 

     int k; 

     int[] NumOfCars = {10, 5, 200}; 

     Console.Write("enter the year"); 

     year=int.Parse(Console.ReadLine()); 

     //Console.Write("search the year"); 

     for(int i=0;i<Year.Length-1;i++) 
     { 
      if(year==Year[i]) 
       k=i; 
     } 

     Console.Write("Result{0},{1],{2}",Year[k],Months[k],NumOfCars[k]); 

    } 

} 
Смежные вопросы