Я хотел бы знать, есть ли способ сократить сравнение в лямбда-выражениях, используя массивы, содержащие элементы сравнения, вместо записи элементов по одному.
На практике у меня есть переменная Dictionary<K,V>
с именем litemList , уже заполненная данными. Я хотел бы иметь еще одну переменную Dictionary<K,V>
только с некоторыми из ключей из litemList .
lfilteredItemlist = litemList.Where(m => m.Key == "Name", m.Key == "Surname")
.ToDictionary(m => m.Key, m => m.Value);
Этот код работает отлично, но когда у меня есть 10 или более ключей для фильтрации, и они могут изменяться со временем (или даже выбираться пользователями), это решение неосуществимо.
Я ищу какое-то решение, где, предполагая, что есть массив со всеми ключами для фильтрации, я могу использовать что-то вроде этого:
filterArray = {"Name", "Surname"};
lfilteredItemlist = litemList.Where(m => m.Key == filterArray)
.ToDictionary(m => m.Key, m => m.Value);
Я совершенно уверен, что есть метод, потому что однажды я увидел его, когда искал материал о Dynamic LINQ . К сожалению, я не могу найти статью снова, и Скотт Гатри не упоминает ее в своем блоге.
Спасибо
Francesco