Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Lookup.cs
Go to the documentation of this file.
3
5
6internal sealed class Lookup<TKey, TElement> : ILookup<TKey, TElement>, IEnumerable<IGrouping<TKey, TElement>>, IEnumerable
7{
9
11
13
14 public int Count
15 {
16 get
17 {
18 int num = _dict.Count;
19 if (_defaultKeyGrouping != null)
20 {
21 num++;
22 }
23 return num;
24 }
25 }
26
27 public IEnumerable<TElement> this[TKey key]
28 {
29 get
30 {
31 if (_comparer.Equals(key, default(TKey)))
32 {
33 if (_defaultKeyGrouping != null)
34 {
36 }
37 return Enumerable.Empty<TElement>();
38 }
40 {
41 return value;
42 }
43 return Enumerable.Empty<TElement>();
44 }
45 }
46
52
53 public bool Contains(TKey key)
54 {
55 if (_comparer.Equals(key, default(TKey)))
56 {
57 return _defaultKeyGrouping != null;
58 }
59 return _dict.ContainsKey(key);
60 }
61
63 {
64 if (_comparer.Equals(grouping.Key, default(TKey)))
65 {
67 }
68 else
69 {
71 }
72 }
73
75 {
77 {
78 yield return value;
79 }
80 if (_defaultKeyGrouping != null)
81 {
83 }
84 }
85
90}
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
void Add(TKey key, TValue value)
void Add(IGrouping< TKey, TElement > grouping)
Definition Lookup.cs:62
IGrouping< TKey, TElement > _defaultKeyGrouping
Definition Lookup.cs:12
Lookup(IEqualityComparer< TKey > comparer)
Definition Lookup.cs:47
readonly IDictionary< TKey, IGrouping< TKey, TElement > > _dict
Definition Lookup.cs:8
readonly IEqualityComparer< TKey > _comparer
Definition Lookup.cs:10
bool Contains(TKey key)
Definition Lookup.cs:53
IEnumerator< IGrouping< TKey, TElement > > GetEnumerator()
Definition Lookup.cs:74
new IEnumerator< T > GetEnumerator()
new bool Equals(object? x, object? y)