c#中动态设置列表对象类型

本文关键字:对象 类型 列表 设置 动态 | 更新日期: 2023-09-27 18:13:36

我有一个List对象,我需要能够动态地交换对象类型。基本上我有:

List<DataBaseItems> items = new List<DataBaseItems>();

然后,我将使用LINQ对该列表执行一些过滤,然后绑定到一个teleerik网格。我需要根据我得到的id来交换对象。我的目标是构建一个自定义控件,它可以对来自上述列表的报表数据的多个报表使用它的过滤按钮。报告A可能会使用上面的列表,而报告B需要一个完全不同的对象,但对它具有相同的操作。

c#中动态设置列表对象类型

创建一个接口,并将其实现到您实现的任何对象中。

public interface ICustomListFilter<T> 
       where T:class
{
    public void FilterAndBindMyList(List<T> myList);
}
public class ReportOneFilter:ICustomListFilter<MyFirstType>
{
    public void FilterAndBindMyList(List<MyFirstType> items)
    {
        // your filtering and binding code goes here, such as items.Where(i => ...
    }
}
public class ReportTwoFilter:ICustomListFilter<MySecondType>
{
    public void FilterAndBindMyList(List<MySecondType> items)
    {
        // your another filtering and binding algorithm goes here, such as items.Select(i => ...
    }
}