Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Max< TSource >() [11/12]

static ? long System.Linq.Enumerable.Max< TSource > ( this IEnumerable< TSource > source,
Func< TSource, long?> selector )
inlinestatic

Definition at line 5982 of file Enumerable.cs.

5983 {
5984 if (source == null)
5985 {
5986 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.source);
5987 }
5988 if (selector == null)
5989 {
5990 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.selector);
5991 }
5992 long? result = null;
5994 {
5995 do
5996 {
5997 if (!enumerator.MoveNext())
5998 {
5999 return result;
6000 }
6001 result = selector(enumerator.Current);
6002 }
6003 while (!result.HasValue);
6004 long num = result.GetValueOrDefault();
6005 if (num >= 0)
6006 {
6007 while (enumerator.MoveNext())
6008 {
6009 long? num2 = selector(enumerator.Current);
6010 long valueOrDefault = num2.GetValueOrDefault();
6011 if (valueOrDefault > num)
6012 {
6013 num = valueOrDefault;
6014 result = num2;
6015 }
6016 }
6017 }
6018 else
6019 {
6020 while (enumerator.MoveNext())
6021 {
6022 long? num3 = selector(enumerator.Current);
6023 long valueOrDefault2 = num3.GetValueOrDefault();
6024 if (num3.HasValue && valueOrDefault2 > num)
6025 {
6026 num = valueOrDefault2;
6027 result = num3;
6028 }
6029 }
6030 }
6031 }
6032 return result;
6033 }

References System.Collections.Generic.Dictionary< TKey, TValue >.GetEnumerator(), System.Linq.selector, System.Linq.source, and System.Linq.ThrowHelper.ThrowArgumentNullException().