Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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");
            }
        }
Пример #3
0
        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 _));
            }
        }