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

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

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

Definition at line 6153 of file Enumerable.cs.

6154 {
6155 if (source == null)
6156 {
6157 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.source);
6158 }
6159 if (selector == null)
6160 {
6161 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.selector);
6162 }
6163 double? result = null;
6164 using IEnumerator<TSource> enumerator = source.GetEnumerator();
6165 while (enumerator.MoveNext())
6166 {
6167 result = selector(enumerator.Current);
6168 if (!result.HasValue)
6169 {
6170 continue;
6171 }
6172 double num = result.GetValueOrDefault();
6173 while (double.IsNaN(num))
6174 {
6175 if (!enumerator.MoveNext())
6176 {
6177 return result;
6178 }
6179 double? num2 = selector(enumerator.Current);
6180 if (num2.HasValue)
6181 {
6182 double? num3 = (result = num2);
6183 num = num3.GetValueOrDefault();
6184 }
6185 }
6186 while (enumerator.MoveNext())
6187 {
6188 double? num4 = selector(enumerator.Current);
6189 double valueOrDefault = num4.GetValueOrDefault();
6190 if (num4.HasValue && valueOrDefault > num)
6191 {
6192 num = valueOrDefault;
6193 result = num4;
6194 }
6195 }
6196 return result;
6197 }
6198 return result;
6199 }

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