wasSharp – Diff between revs 22 and 23
?pathlinks?
Rev 22 | Rev 23 | |||
---|---|---|---|---|
Line 27... | Line 27... | |||
27 | this[key1] = new Dictionary<K2, V>(); |
27 | this[key1] = new Dictionary<K2, V>(); |
|
28 | this[key1][key2] = value; |
28 | this[key1][key2] = value; |
|
29 | } |
29 | } |
|
30 | } |
30 | } |
|
Line 31... | Line 31... | |||
31 | |
31 | |
|
32 | public new IEnumerable<V> Values |
- | ||
33 | { |
- | ||
34 | get |
- | ||
35 | { |
- | ||
36 | return from baseDict in base.Values |
- | ||
37 | from baseKey in baseDict.Keys |
32 | public new IEnumerable<V> Values => |
|
38 | select baseDict[baseKey]; |
- | ||
39 | } |
- | ||
Line 40... | Line 33... | |||
40 | } |
33 | base.Values.SelectMany(baseDict => baseDict.Keys, (baseDict, baseKey) => baseDict[baseKey]); |
|
41 | |
34 | |
|
42 | public void Add(K1 key1, K2 key2, V value) |
35 | public void Add(K1 key1, K2 key2, V value) |
|
43 | { |
36 | { |
|
44 | if (!ContainsKey(key1)) |
37 | if (!ContainsKey(key1)) |
|
45 | this[key1] = new Dictionary<K2, V>(); |
38 | this[key1] = new Dictionary<K2, V>(); |
|
Line -... | Line 39... | |||
- | 39 | this[key1][key2] = value; |
||
- | 40 | } |
||
- | 41 | |
||
- | 42 | public void Remove(K1 key1, K2 key2) |
||
- | 43 | { |
||
- | 44 | if (!ContainsKey(key1) || !this[key1].ContainsKey(key2)) |
||
- | 45 | return; |
||
- | 46 | this[key1].Remove(key2); |
||
46 | this[key1][key2] = value; |
47 | Remove(key1); |
|
47 | } |
48 | } |
|
48 | |
49 | |
|
- | 50 | public bool ContainsKey(K1 key1, K2 key2) |
||
- | 51 | { |
||
- | 52 | return ContainsKey(key1) && this[key1].ContainsKey(key2); |
||
- | 53 | } |
||
- | 54 | |
||
- | 55 | public bool TryGetValue(K1 key1, K2 key2, out V value) |
||
- | 56 | { |
||
- | 57 | if (!ContainsKey(key1) || !this[key1].ContainsKey(key2)) |
||
- | 58 | { |
||
- | 59 | value = default(V); |
||
- | 60 | return false; |
||
49 | public bool ContainsKey(K1 key1, K2 key2) |
61 | } |
|
50 | { |
62 | value = base[key1][key2]; |
|
Line 51... | Line 63... | |||
51 | return base.ContainsKey(key1) && this[key1].ContainsKey(key2); |
63 | return true; |
|
52 | } |
64 | } |
|
Line 65... | Line 77... | |||
65 | } |
77 | } |
|
66 | } |
78 | } |
|
Line 67... | Line 79... | |||
67 | |
79 | |
|
68 | public bool ContainsKey(K1 key1, K2 key2, K3 key3) |
80 | public bool ContainsKey(K1 key1, K2 key2, K3 key3) |
|
69 | { |
81 | { |
|
- | 82 | return ContainsKey(key1) && this[key1].ContainsKey(key2, key3); |
||
- | 83 | } |
||
- | 84 | |
||
- | 85 | public void Add(K1 key1, K2 key2, K3 key3, V value) |
||
- | 86 | { |
||
- | 87 | if (!ContainsKey(key1)) |
||
- | 88 | this[key1] = new MultiKeyDictionary<K2, K3, V>(); |
||
- | 89 | this[key1][key2, key3] = value; |
||
- | 90 | } |
||
- | 91 | |
||
- | 92 | public void Remove(K1 key1, K2 key2, K3 key3) |
||
- | 93 | { |
||
- | 94 | if (!ContainsKey(key1) || !this[key1].ContainsKey(key2, key3)) |
||
- | 95 | return; |
||
- | 96 | this[key1][key2].Remove(key3); |
||
- | 97 | this[key1].Remove(key2); |
||
- | 98 | Remove(key1); |
||
- | 99 | } |
||
- | 100 | |
||
- | 101 | public bool TryGetValue(K1 key1, K2 key2, K3 key3, out V value) |
||
- | 102 | { |
||
- | 103 | if (!ContainsKey(key1) || !this[key1].ContainsKey(key2, key3)) |
||
- | 104 | { |
||
- | 105 | value = default(V); |
||
- | 106 | return false; |
||
- | 107 | } |
||
- | 108 | value = base[key1][key2, key3]; |
||
70 | return base.ContainsKey(key1) && this[key1].ContainsKey(key2, key3); |
109 | return true; |
|
71 | } |
110 | } |
|
Line 72... | Line 111... | |||
72 | } |
111 | } |
|
73 | |
112 | |
|
Line 84... | Line 123... | |||
84 | } |
123 | } |
|
85 | } |
124 | } |
|
Line 86... | Line 125... | |||
86 | |
125 | |
|
87 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4) |
126 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4) |
|
88 | { |
127 | { |
|
89 | return base.ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4); |
128 | return ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4); |
|
90 | } |
129 | } |
|
Line 91... | Line 130... | |||
91 | } |
130 | } |
|
92 | |
131 | |
|
Line 103... | Line 142... | |||
103 | } |
142 | } |
|
104 | } |
143 | } |
|
Line 105... | Line 144... | |||
105 | |
144 | |
|
106 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5) |
145 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5) |
|
107 | { |
146 | { |
|
108 | return base.ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5); |
147 | return ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5); |
|
109 | } |
148 | } |
|
Line 110... | Line 149... | |||
110 | } |
149 | } |
|
111 | |
150 | |
|
Line 123... | Line 162... | |||
123 | } |
162 | } |
|
124 | } |
163 | } |
|
Line 125... | Line 164... | |||
125 | |
164 | |
|
126 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6) |
165 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6) |
|
127 | { |
166 | { |
|
128 | return base.ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5, key6); |
167 | return ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5, key6); |
|
129 | } |
168 | } |
|
Line 130... | Line 169... | |||
130 | } |
169 | } |
|
131 | |
170 | |
|
Line 143... | Line 182... | |||
143 | } |
182 | } |
|
144 | } |
183 | } |
|
Line 145... | Line 184... | |||
145 | |
184 | |
|
146 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7) |
185 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7) |
|
147 | { |
186 | { |
|
148 | return base.ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5, key6, key7); |
187 | return ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5, key6, key7); |
|
149 | } |
188 | } |
|
Line 150... | Line 189... | |||
150 | } |
189 | } |
|
151 | |
190 | |
|
Line 163... | Line 202... | |||
163 | } |
202 | } |
|
164 | } |
203 | } |
|
Line 165... | Line 204... | |||
165 | |
204 | |
|
166 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7, K8 key8) |
205 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7, K8 key8) |
|
167 | { |
206 | { |
|
168 | return base.ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5, key6, key7, key8); |
207 | return ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5, key6, key7, key8); |
|
169 | } |
208 | } |
|
Line 170... | Line 209... | |||
170 | } |
209 | } |
|
171 | |
210 | |
|
Line 183... | Line 222... | |||
183 | } |
222 | } |
|
184 | } |
223 | } |
|
Line 185... | Line 224... | |||
185 | |
224 | |
|
186 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7, K8 key8, K9 key9) |
225 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7, K8 key8, K9 key9) |
|
187 | { |
226 | { |
|
188 | return base.ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5, key6, key7, key8, key9); |
227 | return ContainsKey(key1) && this[key1].ContainsKey(key2, key3, key4, key5, key6, key7, key8, key9); |
|
189 | } |
228 | } |
|
Line 190... | Line 229... | |||
190 | } |
229 | } |
|
191 | |
230 | |
|
Line 207... | Line 246... | |||
207 | } |
246 | } |
|
Line 208... | Line 247... | |||
208 | |
247 | |
|
209 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7, K8 key8, K9 key9, |
248 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7, K8 key8, K9 key9, |
|
210 | K10 key10) |
249 | K10 key10) |
|
211 | { |
250 | { |
|
212 | return base.ContainsKey(key1) && |
251 | return ContainsKey(key1) && |
|
213 | this[key1].ContainsKey(key2, key3, key4, key5, key6, key7, key8, key9, key10); |
252 | this[key1].ContainsKey(key2, key3, key4, key5, key6, key7, key8, key9, key10); |
|
214 | } |
253 | } |
|
Line 215... | Line 254... | |||
215 | } |
254 | } |
|
Line 235... | Line 274... | |||
235 | } |
274 | } |
|
Line 236... | Line 275... | |||
236 | |
275 | |
|
237 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7, K8 key8, K9 key9, |
276 | public bool ContainsKey(K1 key1, K2 key2, K3 key3, K4 key4, K5 key5, K6 key6, K7 key7, K8 key8, K9 key9, |
|
238 | K10 key10, K11 key11) |
277 | K10 key10, K11 key11) |
|
239 | { |
278 | { |
|
240 | return base.ContainsKey(key1) && |
279 | return ContainsKey(key1) && |
|
241 | this[key1].ContainsKey(key2, key3, key4, key5, key6, key7, key8, key9, key10, key11); |
280 | this[key1].ContainsKey(key2, key3, key4, key5, key6, key7, key8, key9, key10, key11); |
|
242 | } |
281 | } |
|
243 | } |
282 | } |
|
244 | } |
283 | } |