using System.Collections.Generic;
public string Name { get; set; }
public Person(string name) { Name = name; }
public static void Main() {
var persons = new List<Person> {
new Person("Mark Twain"),
new Person("Alice Parker"),
Console.WriteLine("B) " + persons.FindIndex(p => p.Name == "John Doe"));
Console.WriteLine("C) " + persons.Select((p, i) => new { p, i }).First(pi => pi.p.Name == "John Doe")?.i);
Console.WriteLine("D) " + persons.TakeWhile(p => p.Name != "John Doe").Count());