It's an extension method to a generic IEnumerable which returns the first value which passes a supplied test, or returns the default value if no such value is found.
What you can do with it is call it on any generic collection (such as a List, or an array) which a specific test method supplied and it will give you the appropriate value.
For example:
List<string> list = new List<string>();
list.Add("hello");
list.Add("goodbye");
string f = list.FirstOrDefault(v => v.StartsWith("h"));
Will give me
f
containing "hello".
If I hadn't added "hello" to the list of strings,
f
would be
null
- the default value for a uninitialised string.