2014-01-21 3 views
-1

텍스트 파일에 100 줄이 있어야합니다. 각 행은 id (001,002,003 등)로 식별됩니다. 그러나 때로는 일부 라인을 놓칠 수 있습니다. 예 : 일부 텍스트 파일은 93 행만 가질 수 있습니다. 나는 누락 된 선들을 검사하고있다.배열의 값 인쇄 C#

이것은 내 코드입니다.

bool[] idCheck = new bool[100]; 
for (int i = 0; i < 100; i++) 
{ 
    idCheck[i] = false; 
    for (int j = 0; j < FileIdArray.Length; j++) //FileIdArray is the list of all my Ids. 
    { 
     if (i == Convert.ToInt32(FileIdArray[j])) 
     { 
      idCheck[i] = true; 
     } 
    } 
} 
ResultBuilder.AppendLine(String.Format("*****************************************")); 
for (int i = 0; i < idCheck.Length; i++) 
{ 
    idCheck[0] = true;   
    if (idCheck[i] == false) 
    { 
     ResultBuilder.AppendLine(String.Format("Missing Id's from File 1 are {0}", i)); 
    }          
} 

이에 대한 나의 오/p를 다음과 같습니다

내 O/P는 다음과 같이 좋아
***************************************** 
Missing Id's from File 1 are 26 
Missing Id's from File 1 are 41 
Missing Id's from File 1 are 56 
Missing Id's from File 1 are 88 
Missing Id's from File 1 are 94 
Missing Id's from File 1 are 98 
Missing Id's from File 1 are 99 

:

Missing Id's from File 1 are 26,41,56,88,94,98,99. 

를 내가이 안에 내 ResultBuilder을 배치 실현 루프 따라서 나는 반복을 가진다. 하지만 문자열을 저장하려고 시도했을 때 예외가 발생했습니다. i

+0

당신이 예외의 어떤 종류를 얻었 는가? – Scoregraphic

+0

정확한 예외를 제공하십시오. –

+0

이것은 내가 쓰는 큰 프로그램의 일부입니다. 내 프로그램 (3 텍스트 파일)에 대한 3 가지 인수를 보냅니다. 예외는 응용 프로그램이 첫 번째 file.First 파일을 데리러되지 않습니다 내가 이것을하고있는 파일입니다. – Matt

답변

-1

은 그냥 루프 내에서 다음 줄을 사용 : -

ResetBuilder.Append(String.Format("Missing Id's from File 1 are {0}", i)) ; 
+0

나는 이미 내 코드에서 같은 것을 가지고있다. 제 질문에 답변 해 주셔서 감사합니다. – Matt

1

당신은 당신의 바닥 루프를 대체 할 수 :

var missing = idCheck.Select((b, idx) => new { IsPresent = b, Idx = idx }) 
    .Where(p => !p.IsPresent) 
    .Select(p => p.Idx); 

string message = string.Format("Missing ids from File 1 are {0}", string.Join("," missing)); 
ResetBuilder.Apppend(message); 
0

이 두 번째 루프를 저장합니다 다음 코드를 사용해보십시오. 첫 번째 루프 자체에서 누락 된 항목을 가져옵니다.

for (int i = 0; i < 100; i++) 
{ 
    idCheck[i] = false; 
    for (int j = 0; j < FileIdArray.Length; j++) //FileIdArray is the list of all my Ids. 
    { 
     if (i == Convert.ToInt32(FileIdArray[j])) 
     { 
      idCheck[i] = true;   
      break; 
     }  
    } 
    if(j>=100) 
    ResultBuilder.AppendLine(String.Format("Missing Id's from File 1 are {0}", i)); 
} 
0

업데이 트 코드 :

ResultBuilder.AppendLine(String.Format("Missing Id's from File 1 are:") 

for (int i = 0; i < idCheck.Length; i++) 
{ 
    idCheck[0] = true; 

    if (idCheck[i] == false) 
    { 
     ResultBuilder.Append(String.Format("{0}", i)); 
    } 
} 
+0

나는 이것을 전에 시도했다. 이것은 비슷한 중복 o/p를 제공합니다. 대답 할 시간을내어 주셔서 감사합니다. – Matt