C# и LINQ: как фильтровать коллекцию по определенным и исключенным значениям

Чтобы отфильтровать коллекцию в C# с помощью LINQ, вы можете использовать предложение Where, чтобы включить определенные значения и исключить другие. Вот несколько способов добиться этого:

Метод 1. Использование одного предложения Whereс логическими операторами:

var filteredList = collection.Where(item => item.Contains("value") && !item.Contains("exclude"));

Метод 2: использование нескольких предложений Where:

var filteredList = collection.Where(item => item.Contains("value"))
                             .Where(item => !item.Contains("exclude"));

Метод 3. Использование метода Except:

var excludedItems = collection.Where(item => item.Contains("exclude"));
var filteredList = collection.Except(excludedItems).Where(item => item.Contains("value"));

Метод 4. Использование метода Exceptс настраиваемым компаратором равенства:

var excludedItems = collection.Where(item => item.Contains("exclude"));
var filteredList = collection.Except(excludedItems, StringComparer.OrdinalIgnoreCase)
                             .Where(item => item.Contains("value"));

Метод 5. Использование предложения Whereс методом Containsи отрицательным условием:

var filteredList = collection.Where(item => item.Contains("value") && !item.Contains("exclude"));