C#在Array中搜索值

时间:2016-03-31 17:55:01

标签: c# arrays search

我想在某些数组中搜索值,例如假设我有3个阵列:

@Valid

所以我想说我想找到2000年有多少辆汽车,我希望能得到如下结果:

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

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

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

我怎么能做到这一点。 感谢

编辑:

我希望用户在不知道值的情况下搜索该值,例如RESULT: 2000, May, 5 他们把2000年,然后程序显示结果。

Console.WriteLine("Search a Year");

3 个答案:

答案 0 :(得分:3)

如果你的结构很简单,那么Kevin的回答就足够了。

但如果你有更复杂的结构,你可以

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

答案 1 :(得分: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]

       }
    }
} 

答案 2 :(得分: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]);

   }

}