【问题标题】:C# Search for value inside ArrayC# 在数组中搜索值
【发布时间】:2016-03-31 17:55:01
【问题描述】:

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

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 

【问题讨论】:

    标签: c# arrays search


    【解决方案1】:

    如果你的结构简单,那么凯文的答案就足够了。

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

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

    【讨论】:

    • 我认为这是最好的答案。如果这些数组谈论的是同一件事,那么创建一个类,然后将其保存在列表中似乎是最有条理的想法。
    【解决方案2】:

    根据您的数组和描述,听起来您想在一个数组中查找值,然后根据您在第一个数组中找到的位置在另外两个数组中查找信息。

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

    【讨论】:

    • 嗨,是的,我确实想在一个数组中找到值,然后查找信息,但我希望用户在不知道值的情况下搜索值,例如Console.WriteLine("搜索一年");他们输入 2000 年,然后程序显示结果。
    【解决方案3】:

    您可以使用简单的线性搜索进行搜索,如下所示

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      相关资源
      最近更新 更多