2013-05-14 3 views
15

그래서 내가하려고하는 것은 목록에서 "무엇이든지"로 시작하는 첫 번째 항목의 색인을 가져 오는 것입니다. 어떻게해야할지 모르겠습니다.목록에있는 문자열의 색인을 찾는 방법

내 시도 (LOL) :

List<string> txtLines = new List<string>(); 
//Fill a List<string> with the lines from the txt file. 
foreach(string str in File.ReadAllLines(fileName)) { 
    txtLines.Add(str); 
} 
//Insert the line you want to add last under the tag 'item1'. 
int index = 1; 
index = txtLines.IndexOf(npcID); 

네 나는 정말 아무것도 아니라는 것을 알고, 그것은 오히려 라인보다 npcID 동일 아이템을 찾고있는 것 같다 있기 때문에 잘못입니다 그것으로 시작됩니다.

+0

실제로 문자열의 인덱스를 표시합니다. http://www.dotnetperls.com/indexof – Sunny

+0

을 확인하십시오. 정확히 무엇이 문제입니까? 'txtLines'가 텍스트 박스라면,'txtLines.Text.IndexOf (ncpID)'만하십시오. – Matthew

+0

죄송합니다. 코드를 붙여 놓지 않은 이유가 있습니다. 오 잘 고정 –

답변

40

당신이 당신의 txtLines이 목록 유형이 "StartsWith는"당신이 FindIndex

int index = txtLines.FindIndex(x => x.StartsWith("whatever")); 
+1

감사합니다, 매력처럼 근무 –

2

을 사용할 수 원하는 경우, 당신은 그 값을 검색 한 후, 루프에 넣어 필요가

int index = 1; 
foreach(string line in txtLines) { 
    if(line.StartsWith(npcID)) { break; } 
    index ++; 
} 
+0

문자열을 찾을 때 어떤 시점에서 루프를 종료 할 수 있습니다. – siride

+0

당신의 입력에 대한 너, 내가 코드를 변경 – dArc

+0

이 날 많이 도와주세요. 감사. :) –

-1

txtLines가 채워 졌다고 가정 해 봅시다 :

List<int> index = new List<int>(); 
for (int i = 0; i < txtLines.Count(); i++) 
     { 
      index.Add(i); 
     } 

이제 int 목록에 인덱스가 있습니다. 모든 txtLines 요소. 다음 코드로 의 첫 번째 요소를 호출 할 수 있습니다. index.First();

관련 문제