2017-05-03 1 views
-2

이 방법이 시작되고 사용자는 첫 번째 또는 두 번째 파일을 선택할 수 있습니다. 결과에 따라 myArray가 변경되도록 어떻게 만들 수 있습니까? 현재 myArray는 현재 상황에 존재하지 않는다고합니다. 파일 2가 선택되면 어떻게 myArray를 해당 파일 값으로 설정합니까?선형 검색 고정 C#

도움을 주시면 감사하겠습니다. 감사.

코드 :

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(); 
    } 
+0

변수를 적절한 범위 수준으로 이동하십시오. 당신은 그 블록 내에서 그것을 선언하므로, 그 블록 내에 만 존재합니다. –

+0

유형'문자열 []에 myArray = NULL;'직접'INT 작업 ='과에서 myArray = File.''에'문자열 []에 myArray = File.'에서 전화를 변경하려면 아래에, 당신은 null 참조 예외를 처리 할 수있을 때 사용자는 나중에 1 또는 2를 입력하지 않습니다. 이것은 "범위"문제이며,'{}'안에 정의 된 것들은 같은 대괄호 안에서만 접근 할 수 있습니다. 당신은'검색() {}'괄호가 아닌'경우에 myArray''범위에 도움을 (작업 == x)는 {}'괄호 – Quantic

답변

1

당신은 if & else의 범위 내에서 myArray을 선언했다. 당신은이 같은 함수에 어디서든 액세스 할 수 있도록하는 대신 외부를 선언해야합니다 :

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

대신 당신은 C#을 here의 범위에 대한 자세한을 읽을 수

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

의.

+0

감사합니다. 근무한 – Russsu