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

时间:2014-07-18 15:18:07

标签: c# linq list

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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 => ...
    }
}