LenovoLegionToolkit
23 строки · 846.0 Байт
1using System.Collections.Generic;
2using System.Collections.ObjectModel;
3
4namespace LenovoLegionToolkit.Lib.Extensions;
5
6public static class DictionaryExtensions
7{
8public static ReadOnlyDictionary<TKey, TValue> AsReadOnlyDictionary<TKey, TValue>(this IDictionary<TKey, TValue> source) where TKey : notnull
9{
10return new ReadOnlyDictionary<TKey, TValue>(source);
11}
12
13public static void AddRange<TKey, TValue>(this IDictionary<TKey, TValue> source, IDictionary<TKey, TValue> items)
14{
15foreach (var keyValuePair in items)
16source.Add(keyValuePair.Key, keyValuePair.Value);
17}
18
19public static TValue? GetValueOrNull<TKey, TValue>(this IReadOnlyDictionary<TKey, TValue> dictionary, TKey key) where TValue : struct
20{
21return !dictionary.TryGetValue(key, out var obj) ? null : obj;
22}
23}
24