Declaration
public static TResult FirstOrDefault<TSource, TResult>(
    this IQueryable<TSource> source,
    Expression<Func<TSource, bool>> predicate,
    Func<TSource, TResult> resultSelector,
    TResult default
)Summary
                Returns the first element of a sequence, or a default value if the sequence contains no elements.
Generic type parameters
| TSource | 
                The type of the elements of source. | 
| TResult | 
                The type of the resulting value. | 
Parameters
| this IQueryable<TSource> | source | 
                The collection to return the first element of. | 
| Expression<Func<TSource, bool>> | predicate | 
                A function to test each element for a condition. | 
| Func<TSource, TResult> | resultSelector | 
                A function to transform the first element into the result value. Will only be called if the sequence contains an
                element that passes the test specified by predicate. | 
| TResult | default | 
                The default value to return if the sequence contains no elements. | 
Returns
default if 
source is empty or if no element passes the test specified by
                
predicate; otherwise, the transformed first element in 
source that passes
                the test specified by 
predicate.