- LINQ (интегрированный язык запрос): LINQ можно использовать для фильтрации данных в C#. Используя предложение
Where, вы можете применять условия и фильтровать данные из коллекций.
Пример:
var filteredData = sourceData.Where(item => item.Property == value);
- Методы расширения. Вы можете создавать методы расширения, чтобы обеспечить функциональность фильтрации для объектов или коллекций. Это позволяет писать краткий и многократно используемый код.
Пример:
public static class FilterExtensions
{
public static IEnumerable<T> Filter<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
foreach (var item in source)
{
if (predicate(item))
{
yield return item;
}
}
}
}
// Usage:
var filteredData = sourceData.Filter(item => item.Property == value);
- Делегаты. Вы можете использовать делегатов для определения пользовательских фильтров и передачи их в качестве аргументов методам или запросам LINQ.
Пример:
public delegate bool FilterDelegate<T>(T item);
public static IEnumerable<T> Filter<T>(IEnumerable<T> source, FilterDelegate<T> filter)
{
foreach (var item in source)
{
if (filter(item))
{
yield return item;
}
}
}
// Usage:
var filteredData = Filter(sourceData, item => item.Property == value);