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

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

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

Definition at line 5902 of file Enumerable.cs.

5903 {
5904 if (source == null)
5905 {
5906 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.source);
5907 }
5908 if (selector == null)
5909 {
5910 ThrowHelper.ThrowArgumentNullException(ExceptionArgument.selector);
5911 }
5912 int? result = null;
5914 {
5915 do
5916 {
5917 if (!enumerator.MoveNext())
5918 {
5919 return result;
5920 }
5921 result = selector(enumerator.Current);
5922 }
5923 while (!result.HasValue);
5924 int num = result.GetValueOrDefault();
5925 if (num >= 0)
5926 {
5927 while (enumerator.MoveNext())
5928 {
5929 int? num2 = selector(enumerator.Current);
5930 int valueOrDefault = num2.GetValueOrDefault();
5931 if (valueOrDefault > num)
5932 {
5933 num = valueOrDefault;
5934 result = num2;
5935 }
5936 }
5937 }
5938 else
5939 {
5940 while (enumerator.MoveNext())
5941 {
5942 int? num3 = selector(enumerator.Current);
5943 int valueOrDefault2 = num3.GetValueOrDefault();
5944 if (num3.HasValue && valueOrDefault2 > num)
5945 {
5946 num = valueOrDefault2;
5947 result = num3;
5948 }
5949 }
5950 }
5951 }
5952 return result;
5953 }

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