You cannot directly change it. But you have several alternatives.
If your sequence does not contain null, you can use:
MyClass result = seq.FirstOrDefault() ?? new MyClass("HelloWorld");
Or you can implement your own version, which accepts a parameter for the default value:
public static T FirstOrDefault<T>(this IEnumerable<T> source, T defaultValue)
{
using (IEnumerator<T> enumerator = source.GetEnumerator())
{
if (enumerator.MoveNext())
return enumerator.Current;
else
return defaultValue;
}
}
public static T FirstOrDefault<T>(this IEnumerable<T> source, Func<T, bool> predicate, T defaultValue)
{
using (IEnumerator<T> enumerator = source.Where(predicate).GetEnumerator())
{
if (enumerator.MoveNext())
return enumerator.Current;
else
return defaultValue;
}
}
FirstOrDefault, - , .
https://github.com/CodesInChaos/ChaosUtil/blob/master/Chaos.Util/LinqExtensions.cs