リストから、見つかった文字列のインデックス番号を取得しようとしています。私は、500の文字列の数値のリストを持っている:リスト内で見つかった文字列のインデックスを入力文字列と同じにする方法
List<string> List = new List<string>();
だから私はいくつかに等しいいくつかの入力文字列を持っている場合たとえば、私のリスト内の文字列を存在:
string numbStr = "54";
は、今私は同じ文字列のインデックスを見つけたいですインデックスの文字列 "54"のインデックスでは、インデックス53です。したがって、私の入力文字列の値が101未満の場合、私は正しい結果を持っています。入力値が文字列「54」である、と私は、リスト内の同じ文字列「54」を見つけた場合、インデックス値は53で、1 Iは、インデックス、このよう希望しまっ:
int index = List.FindIndex(x => x.StartsWith(numbStr));
しかし、私の入力番号がある場合たとえば101より大きい場合、string numbStr = "308";
インデックス結果は517、 "500"の行は実際には499です。901などがあります。リスト内のすべての文字列は、文字列名と比較してシフト-1のシーケンスでインデックスに等しくなります。
このような間違った結果の原因がわからない場合は、把握する必要があります。行の下
123 b4 c1 nnn
124 b4 c1 nnn
125 b4 c1 nnn
126 b4 c1 nnn
"StartsWith"ではなく "Equals"メソッドまたは==を使用して、動作するかどうかを確認してください。これは、「開始」が任意の順序で複数の結果につながる可能性があるため、インデックスが正確でない可能性があるからです。 –
入力リストにどのように入力しますか?そのリストはソートされていますか? –
@Abhilash R Vankayalaこんにちは、下の回答と同じように、私はこのように0を得ました –