C# 中的 Filter

   在撰寫 C# 程式時,我們常會遇到需要篩選資料的情境,例如從一串清單中找出符合條件的項目。這就是所謂的 Filter(過濾器) 的應用。

  Filter(過濾器)是一種用來從資料集合中挑出符合特定條件項目的技術。在 C# 中,最常見的做法是使用 LINQ(Language Integrated Query) 來達成資料的篩選。

LINQ範例:

using System;

using System.Collections.Generic;

using System.Linq;


class Program

{

    static void Main()

    {

        var numbers = new List<int> { 1, 5, 10, 15, 20, 25 };

        var filtered = numbers.Where(n => n > 10);


        Console.WriteLine("大於 10 的數字:");

        foreach (var num in filtered)

        {

            Console.WriteLine(num);

        }

    }

}

  在 C# 中,用來在執行 Controller 前後「篩選」請求或回應,例如權限檢查、日誌紀錄等 。

ASP.NET MVC / Web API 的 ActionFilterAttribute範例:

public class LogActionFilter : ActionFilterAttribute

{

    public override void OnActionExecuting(ActionExecutingContext context)

    {

        Console.WriteLine("執行前記錄:", context.ActionDescriptor.DisplayName);

    }

}


[LogActionFilter]
public IActionResult GetData()
{
    return Ok("Data");
}

WinForms 中的 DataView.RowFilter 篩選 DataTable範例:

DataTable table = GetProductTable();
DataView view = new DataView(table);
view.RowFilter = "Price > 1000";

dataGridView1.DataSource = view;

WPF 中 CollectionView 的過濾器(CollectionViewSource.Filter)範例:
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(myListView.ItemsSource);
view.Filter = item =>
{
    var product = item as Product;
    return product != null && product.Price > 100;
};


留言

熱門文章