Linqでデリゲート使わないのなんて数えるほどのケースしかないような気がするけど…
コレクションの中から条件に一致する最初の探して、っていう
Enumerable.First<T>(IEnumerable<T>, Func<T, bool>)
がある
まあざっと実装するなら
foreach (var item in collection) if (ISMATCH(item)) return item;
って感じのメソッドになるよね
でFirstメソッドはこのISMATCHっていう条件関数以外は実装してくれてて、
あとはISMATCHに該当するのだけくれればあとはやっとくよ、という状態
で、そのISMATCHを渡すためにデリゲートを使う

public bool IsMatching(Person p) { return p.Name == "hoge"; }
っていうメソッドが存在していれば、あとは
persons.First(new Func<Person, bool>(IsMatching))
と言う記述でFirstにIsMatchingを渡すことができる

// 実際には省略してpersons.First(IsMatching)とか書く
// さらにいちいち"hoge"しか探せないメソッド用意するのは馬鹿馬鹿しいので
// ラムダ式を使ってpersons.First(_person => _person.Name == "hoge")とか書く