var item = list.Where(t => somecondition);
I would love to be able to find out the index of the element that was returned, in fact, in my case a
In reference to Jon Skeet's answer, you can use DefaultIfEmpty() before calling FirstOrDefault without adding and subtracting from the index.
var index = list.Select((value, index) => new { value, index })
.Where(pair => SomeCondition(pair.value))
.Select(pair => pair.index).DefaultIfEmpty(-1)
.FirstOrDefault();