修复线性搜索C#

时间:2017-05-03 21:48:29

标签: c# sorting search linear

此方法启动,用户可以选择第一个或第二个文件。如何使myArray根据结果进行更改。目前它说myArray在当前上下文中不存在。如果选择文件2,那么如何将myArray设置为该文件值?

感谢任何帮助。谢谢。

代码:

  public static void search()   // Search for values
   {
 Console.WriteLine("1=Day 2=Depth");
 int operation = Convert.ToInt32(Console.ReadLine());
  if (operation == 1)
    {
        String[] myArray = File.ReadAllLines("Data1/Day_1.txt");
    }


   else if (operation == 2)
    {
        String[] myArray = File.ReadAllLines("Data1/Months_1.txt");
    }


        Console.WriteLine("Enter number to search");
        String myString = Console.ReadLine();
        int i = 0;
        int j = 0;
        var regex = new Regex(myString);
        foreach (string array in myArray)
        {
            if (regex.IsMatch(array))
            {
                i++;
            }

            else if (regex.IsMatch(array))
            {
                j++; 
            }
        }

        if (i > 0)
        {
            Console.WriteLine("Found match! - {1} Appeared {0} time(s)",i,myString);
        }

        else if(j == 0)
        {
            Console.WriteLine("No Match for {0} in Data", myString);
        }

        Console.ReadLine();
    }

1 个答案:

答案 0 :(得分:1)

您已在myArray&范围内声明ifelse。您应该在外面声明它,以便可以从函数中的任何位置访问它,如下所示:

String[] myArray = null;
if (operation == 1)
{
    myArray = File.ReadAllLines("Data1/Day_1.txt");
}
else if (operation == 2)
{
    myArray = File.ReadAllLines("Data1/Months_1.txt");
}

而不是

if (operation == 1)
{
    String[] myArray = File.ReadAllLines("Data1/Day_1.txt");
}
else if (operation == 2)
{
    String[] myArray = File.ReadAllLines("Data1/Months_1.txt");
}

您可以在C#here中阅读有关范围的更多信息。