代码之家  ›  专栏  ›  技术社区  ›  zsharp

与ILIST的铸造接口

  •  4
  • zsharp  · 技术社区  · 15 年前

    ILIST <ITopics>

    Object.X= AListOfSometypeThatInheretsITopics;
    

    如何将列表正确地转换到Object.X?

    3 回复  |  直到 15 年前
        1
  •  8
  •   Jeffrey Hantin    15 年前

    generic variance ,这在 IList<T> 因为它表示一个可变列表接口。最好的办法是使用非通用的 IList 或者是普通的 IEnumerable<T> (对于C#4,它可以接受方差)作为字段/属性类型,或者通过诸如

    x = inputList.OfType<ITopics>().ToList();
    

    以获得一份合适口味的清单。

        2
  •  2
  •   jlembke    15 年前

    object.x = IList<ITopics>.ofType<ITopics>().ToList()
    
        3
  •  0
  •   Xian    15 年前

    你可以使用 IEnumerable<T> 扩展法铸造

    Object.X = yourList.Cast<ITopics>().ToList();