public void TryGetValue_ShouldBehaveTheSameWay() { // Arrange Dictionary <int, string> dictionary = new(SampleDictionary.Reverse()); Fictionary <int, string, GenericEqualityComparer <int> > fictionary = SampleDictionary.ToList().Mix().ToFictionary(); // Act foreach (KeyValuePair <int, string> kv in SampleDictionary) { { bool foundInDictionary = dictionary.TryGetValue(kv.Key, out string?dictionaryValue); bool foundInFictionary = fictionary.TryGetValue(kv.Key, out string?fictionaryValue); Assert.Equal(foundInDictionary, foundInFictionary); Assert.Equal(dictionaryValue, fictionaryValue); } { bool foundInDictionary = dictionary.TryGetValue(-kv.Key, out string?dictionaryValue); bool foundInFictionary = fictionary.TryGetValue(-kv.Key, out string?fictionaryValue); Assert.Equal(foundInDictionary, foundInFictionary); Assert.Equal(dictionaryValue, fictionaryValue); } } }
private static void Main() { IEnumerable <FileInfo> currentDirFiles = new DirectoryInfo(Environment.CurrentDirectory).EnumerateFiles(); using Fictionary <string, FileInfo, OrdinalStringComparer> fictionary = currentDirFiles .ToFictionary(fi => fi.Name, new OrdinalStringComparer()); IEnumerable <FileInfo> userDirFiles = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)).EnumerateFiles(); foreach (FileInfo fi in userDirFiles) { fictionary.TryAdd(fi.Name, fi); } foreach (KeyValuePair <string, FileInfo> kv in fictionary) { Console.WriteLine($"{kv.Key}\t{kv.Value.Directory?.FullName}"); } Console.WriteLine(); if (fictionary.TryGetValue(".gitconfig", out FileInfo? value)) { Console.WriteLine($"{value.Name}: {value.Length} bytes"); } }
public void Remove_ShouldBehaveTheSameWay() { // Arrange Dictionary <int, string> dictionary = new(SampleDictionary, Int32EqualityComparer.Default); Fictionary <int, string, GenericEqualityComparer <int> > fictionary = SampleDictionary.ToFictionary(); int count = SampleItems.Length; // Act for (int i = 0; i != count; ++i) { int key = SampleItems[i].Key * (i % 2 == 0 ? 1 : -1); bool removedFromDictionary = dictionary.Remove(key); bool removedFromFictionary = fictionary.Remove(key); Assert.Equal(removedFromDictionary, removedFromFictionary); Assert.False(fictionary.ContainsKey(key)); Assert.False(fictionary.TryGetValue(key, out _)); } }