Есть список
var dic = new Dictionaty<string,int>();
Есть отдельно список . Я назвал его stopWords
var stopWords = new List<string>();
Как через linq
сделать двойной цикл, который будет проверять наличие элементов stopWords в словаре dic
? И если совпадения есть то мы удаляем его из dic
.
Я вижу решение с помощью создания двойного цикла, но хотелось бы увидеть через linq
Что-то вроде:
stopWords.ForEach(sw =>
{
dic.Keys.Where(k => k.Contains(sw)).ToList().ForEach(k =>
{
dic.Remove(k);
}
});
Протестить можно тут.
Ключевой момент: k => k.Contains(sw)
использует String.Contains()
метод, который ищет подстроку в строке.
Дополнительная документация:
List.ForEach()
ICollection.Constains()
либо Dictionary.ContainsKey()
Dictionary.Remove()
Вы не должны использовать LINQ только потому, что это модно. LINQ нужно использовать по делу, тогда код будет проще.
Смысл LINQ состоит в Q — Query. LINQ применяется для того, чтобы опросить нужные данные, а не для того, чтобы модифицировать их. С модификацией традиционный код справляется куда лучше.
Я бы сделал как-то так:
var badKeys = dict.Keys.Where(k => stopWords.Any(w => k.Contains(w))).ToList(); // LINQ-опрос
// ToList() нужно, т. к. мы собираемся модифицировать несущую коллекцию
foreach (var key in badKeys) // модификация в традиционном стиле
dict.Remove(key);
Проверка: http://ideone.com/KxrhzQ
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите, каким образом можно распаковать ресурс в определенную папку?
Добрый день, нужно написать программу на C# которая получает при помощи Яндекс метрики число посещений разных сайтовВопрос: реализуемо ли это...
Как из таблицы в DataGrid (WPF) получить число столбцов и строк? в формах было просто : RowCount и ColumnCount а как в wpf ?