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

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

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

Definition at line 6070 of file Enumerable.cs.

6071 {
6072 if (source == null)
6073 {
6074 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.source);
6075 }
6076 if (selector == null)
6077 {
6078 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.selector);
6079 }
6080 float? result = null;
6081 using IEnumerator<TSource> enumerator = source.GetEnumerator();
6082 while (enumerator.MoveNext())
6083 {
6084 result = selector(enumerator.Current);
6085 if (!result.HasValue)
6086 {
6087 continue;
6088 }
6089 float num = result.GetValueOrDefault();
6090 while (float.IsNaN(num))
6091 {
6092 if (!enumerator.MoveNext())
6093 {
6094 return result;
6095 }
6096 float? num2 = selector(enumerator.Current);
6097 if (num2.HasValue)
6098 {
6099 float? num3 = (result = num2);
6100 num = num3.GetValueOrDefault();
6101 }
6102 }
6103 while (enumerator.MoveNext())
6104 {
6105 float? num4 = selector(enumerator.Current);
6106 float valueOrDefault = num4.GetValueOrDefault();
6107 if (num4.HasValue && valueOrDefault > num)
6108 {
6109 num = valueOrDefault;
6110 result = num4;
6111 }
6112 }
6113 return result;
6114 }
6115 return result;
6116 }

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