C # как фильтровать элементы в ListView с помощью textBox

Одна простая идея заключалась бы в создании подкласса Dictionary<string, string>, который по умолчанию устанавливает сопоставление с StringComparer.OrdinalIgnoreCase, а затем десериализуется в это вместо обычного словаря. Например:

class CaseInsensitiveDictionary<V> : Dictionary<string, V>
{
    public CaseInsensitiveDictionary() : base(StringComparer.OrdinalIgnoreCase)
    {
    }
}

class Program
{
    static void Main(string[] args)
    {
        string json = @"
        {
            ""Foo"" : 
            {
                ""fiZZ"" : 1,
                ""BUzz"" : ""yo""
            },
            ""BAR"" :
            {
                ""dIt"" : 3.14,
                ""DaH"" : true
            }
        }";

        var dict = JsonConvert.DeserializeObject<CaseInsensitiveDictionary<CaseInsensitiveDictionary<object>>>(json);

        Console.WriteLine(dict["foo"]["fizz"]);
        Console.WriteLine(dict["foo"]["buzz"]);
        Console.WriteLine(dict["bar"]["dit"]);
        Console.WriteLine(dict["bar"]["dah"]);
    }
}

Выход:

1
yo
3.14
True
-10
задан AbdelAziz AbdelLatef 1 September 2019 в 10:41
поделиться