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

◆ GetGrouping()

Grouping< TKey, TElement > System.Linq.Lookup< TKey, TElement >.GetGrouping ( TKey key,
bool create )
inlinepackage

Definition at line 193 of file Lookup.cs.

194 {
195 int num = InternalGetHashCode(key);
196 for (Grouping<TKey, TElement> grouping = _groupings[num % _groupings.Length]; grouping != null; grouping = grouping._hashNext)
197 {
198 if (grouping._hashCode == num && _comparer.Equals(grouping._key, key))
199 {
200 return grouping;
201 }
202 }
203 if (create)
204 {
205 if (_count == _groupings.Length)
206 {
207 Resize();
208 }
209 int num2 = num % _groupings.Length;
211 grouping2._hashNext = _groupings[num2];
213 if (_lastGrouping == null)
214 {
215 grouping2._next = grouping2;
216 }
217 else
218 {
219 grouping2._next = _lastGrouping._next;
220 _lastGrouping._next = grouping2;
221 }
223 _count++;
224 return grouping2;
225 }
226 return null;
227 }
Grouping< TKey, TElement > _lastGrouping
Definition Lookup.cs:15
int InternalGetHashCode(TKey key)
Definition Lookup.cs:184
readonly IEqualityComparer< TKey > _comparer
Definition Lookup.cs:11
Grouping< TKey, TElement >[] _groupings
Definition Lookup.cs:13
new bool Equals(object? x, object? y)

References System.Linq.Lookup< TKey, TElement >._comparer, System.Linq.Lookup< TKey, TElement >._count, System.Linq.Lookup< TKey, TElement >._groupings, System.Linq.Lookup< TKey, TElement >._lastGrouping, System.Collections.IEqualityComparer.Equals(), System.Linq.Lookup< TKey, TElement >.InternalGetHashCode(), System.key, and System.Linq.Lookup< TKey, TElement >.Resize().

Referenced by System.Linq.Lookup< TKey, TElement >.Contains().