using System.Collections.Generic;
public static void Main()
IDictionary<int, string> dict = null;
Console.WriteLine($"-------------------- DICTIONARY NULL --------------------");
Console.WriteLine($"dict.AnyNotNull(): {dict.AnyNotNull()}");
Console.WriteLine($"dict.ContainsKeyNotNull(1): {dict.ContainsKeyNotNull(1)}");
Console.WriteLine($"dict.ContainsKeyNotNull(5): {dict.ContainsKeyNotNull(5)}");
Console.WriteLine($"dict.TryGetValueNotNull(1, out uno): {dict.TryGetValueNotNull(1, out uno)}");
Console.WriteLine($"uno: {uno}");
Console.WriteLine($"dict.TryGetValueNotNull(5, out cinco): {dict.TryGetValueNotNull(5, out cinco)}");
Console.WriteLine($"cinco: {cinco}");
Console.WriteLine($"dict.ToListString(): {dict.ToListString<int,string>()}");
dict = new Dictionary<int,string>()
Console.WriteLine($"-------------------- DICTIONARY NOT NULL --------------------");
Console.WriteLine($"dict.AnyNotNull(): {dict.AnyNotNull()}");
Console.WriteLine($"dict.ContainsKeyNotNull(1): {dict.ContainsKeyNotNull(1)}");
Console.WriteLine($"dict.ContainsKeyNotNull(5): {dict.ContainsKeyNotNull(5)}");
Console.WriteLine($"dict.TryGetValueNotNull(1, out uno): {dict.TryGetValueNotNull(1, out uno)}");
Console.WriteLine($"uno: {uno}");
Console.WriteLine($"dict.TryGetValueNotNull(5, out cinco): {dict.TryGetValueNotNull(5, out cinco)}");
Console.WriteLine($"cinco: {cinco}");
Console.WriteLine($"dict.ToListString(): {dict.ToListString<int,string>()}");
public static class DictionaryExtension
public static string ToListString<K,V>(this IDictionary<K,V> dict, string itemSeparator = "|" , string keyValueSeparator = "-")
return dict.AnyNotNull() ? string.Join($"{itemSeparator}" , dict.Select(d => $"{d.Key}{keyValueSeparator}{d.Value}")) : null;
public static bool AnyNotNull<K,V>(this IDictionary<K,V> dict)
return dict != null && dict.Count > 0;
public static bool ContainsKeyNotNull<K,V>(this IDictionary<K,V> dict, K key)
return dict != null && dict.ContainsKey(key) ;
public static bool TryGetValueNotNull<K,V>(this IDictionary<K,V> dict, K key, out V val)
bool isSuccess = dict != null && dict.TryGetValue(key, out outVal) ;
public static IList<T> Split<T>(string str, string separator)
if(string.IsNullOrEmpty(str))
return str.Split(separator).Select(i => (T)Convert.ChangeType(i, typeof(T))).ToList();