List内のどこに含まれているかを調べるにはIndexOfメソッドを使うことが出来ます。 IndexOfメソッドでは、要素が見つかった場合はその要素のインデックスを返します。 もし見つからなければ-1が返されます。

IndexOfメソッドはListの先頭から調べて最初に見つかった要素のインデックスを返しますが、LastIndexOfメソッドを使うとListの末尾から調べて最初に見つかった要素のインデックス(List内で一番最後にあるインデックス)を取得することができます。 検索したい要素がListの後方にあることが想定される場合は、LastIndexOfメソッドを使った方が早く見つけることができます。

IndexOfメソッド・LastIndexOfメソッドを使ってList内にある要素の位置を検索して取得する
using System;
using System.Collections.Generic;

class Sample {
  static void Main()
  {
    var list = new List<string>() {"Alice", "Bob", "Charlie", "Bob", "Alice"};

    // 値"Bob"を持つ最初の要素の位置を取得する
    Console.WriteLine("IndexOf(Bob) = {0}", list.IndexOf("Bob"));

    // 値"Eve"を持つ最初の要素の位置を取得する
    Console.WriteLine("IndexOf(Eve) = {0}", list.IndexOf("Eve"));

    // 値"Alice"を持つ最後の要素の位置を取得する
    Console.WriteLine("LastIndexOf(Alice) = {0}", list.LastIndexOf("Alice"));
  }
}
実行結果
IndexOf(Bob) = 1
IndexOf(Eve) = -1
LastIndexOf(Alice) = 4

FindIndex・FindLastIndex等のメソッドを使うと、より複雑な条件を指定して要素を検索することが出来ます。 また、文字列を格納するリストで大文字小文字を無視した検索をしたい場合などにはこれらのメソッドを使う必要があります。 詳しくは§.述語(Predicate)を用いた検索で後述します。