ile będzie to odpowiednik SQL skanowanie tabeli, można użyć LINQ lub metod przedłużających IEnumerable<T>
szukać słownika dla wszystkich wartości, których klucze pasujące do wzorca :
Extension Metoda:
var values = dictionary.Where(pv =>
pv.Key.StartsWith("A") ||
(pv.Key.Length >= 3 && pv.Key[2] == 'e') ||
pv.Key.Length < 4 ||
pv.Key[3] != 'd').Select(pv => pv.Value);
LIN Pytanie:
var values = (from pv in dictionary
where pv.Key.StartsWith("A") ||
(pv.Key.Legnth >= 3 && pv.Key[2] == 'e') ||
pv.Length < 4 ||
pv.Key[3] != 'd'
select pv.Value);
Należy zauważyć, że ostatnia część obu tych predykatów odnosi się do "czwartej litery nie jest" d ". Uznałem, że łańcuch o długości trzech znaków (lub mniej) będzie pasował do tego. Jeśli masz na myśli co najmniej cztery znaki, a czwarty znak to nie "d", to zmiany powinny być oczywiste.
Należy pamiętać, że podstawową (wydajnościową) korzyścią dla klasy Dictionary
jest użycie wyszukiwania klucza hash, które (w przeciętnym i najlepszym przypadku) to O (1). Użycie takiego wyszukiwania liniowego to O (n), więc coś takiego będzie na ogół wolniejsze niż zwykłe wyszukiwanie klucza.
jesteś świetny!Dziękuję za odpowiedź ! – softwaremonster