2013-05-14 16 views
15

私がしようとしているのは、リスト内の「何でも」で始まる最初の項目のインデックスを取得することです。これを行う方法がわかりません。リスト内の文字列のインデックスを見つける方法

私の試み(笑):

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

ここでは、すべてのtxtLines要素次のコードで最初の要素List<int> indexを呼び出すことができます。index.First();

関連する問題