【问题标题】:Convert list of filters Telerik?转换过滤器列表 Telerik?
【发布时间】:2015-01-12 10:49:54
【问题描述】:

如何将 List 转换为 Ilist ? 更具体地说,这是代码:

public IList<Kendo.Mvc.IFilterDescriptor> GetFilters()
{
    List<Kendo.Mvc.FilterDescriptor> filters = new List<Kendo.Mvc.FiterDescriptor>();

    filters.Add(new Kendo.Mvc.FilterDescriptor("Column", Kendo.Mvc.FilterOperator.Contains, "1"));

    return filters;
}

它给了我这个错误: “无法将类型 'System.Collections.Generic.IList' 隐式转换为 'System.Collections.Generic.IList'。存在显式转换(您是否缺少强制转换?)”

【问题讨论】:

    标签: c# .net telerik telerik-mvc


    【解决方案1】:

    您实际上可以通过以下方式相当简单地做到这一点:

    public IList<Kendo.Mvc.IFilterDescriptor> GetFilters()
    {
        IList<Kendo.Mvc.IFilterDescriptor> filters = new List<Kendo.Mvc.IFilterDescriptor>();
    
        filters.Add(new Kendo.Mvc.FilterDescriptor("Column", Kendo.Mvc.FilterOperator.Contains, "1"));
    
        return filters;
    }
    

    之所以可行,是因为我们创建了一个“IList”类型的对象,其余代码都遵循该对象,因为它都扩展了这些接口。

    希望这会有所帮助! :)

    【讨论】:

    • 其实你做不到。您的代码与我的问题中的代码相同,并且您的代码引发异常。
    【解决方案2】:

    我找到了答案。

    public IList<Kendo.Mvc.IFilterDescriptor> GetFilters()
    {
        List<Kendo.Mvc.FilterDescriptor> filters = new List<Kendo.Mvc.FiterDescriptor>();
    
        filters.Add(new Kendo.Mvc.FilterDescriptor("Column", Kendo.Mvc.FilterOperator.Contains, "1"));
    
        IList<Kendo.Mvc.IFilterDescriptor>() iFilters = new List<Kendo.Mvc.IFilterDescriptor>();
    
        foreach(var filter in filters)
        {
           Kendo.Mvc.IFilterDescriptor temp = null;
           temp = filter;
    
           if(temp is Kendo.Mvc.FilterDescriptor)
           {
               iFilters.Add(temp);
           }
        }
    
        return filters;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-06
      • 2015-07-12
      • 1970-01-01
      • 2016-08-27
      • 2013-05-20
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多