Aj' daj neki od tih primera koje si nasao, bas me zanima :)
FirstOrDefault ce ti vratiti default(T) a ako hoces neki objekat po zelji, mozes koristiti DefaultIfEmpty pa First.
DefaultIfEmpty ce ti vratiti novi IEnumerable koji ce biti ili isti onaj na kojem je pozvan ili ako je prazan, vratice IEnumerable sa jednim elementom koji je onaj koji si zadao.
Recimo (C# je, ali je kratko):
Code (csharp):
List
<string> Strings
= new List
<string>() { "Prvi",
"Drugi",
"Treci" };
string result
= Strings
.Where(s
=> s
.Length > 5).DefaultIfEmpty("Ni jedan").First();