LINQ过滤器和转换C#.NET 4.0

时间:2011-10-06 15:14:41

标签: c# .net linq

想要过滤和转换List。我可以过滤但无法弄清楚如何转换。问题,return语句返回一个FieldDef列表。如何从fieldsDefs获取FieldDefsEnum1的列表?提前谢谢。

    FieldDefEnum1 : FieldDef 

    List<FileDef> fieldDefs

    public List<FieldDefEnum1> FieldDefsEnum1
    {
        get
        {
            return FieldDefs.Where(fd => fd.GetType() == typeof(FieldDefEnum1)).ToList();
        }
    }

3 个答案:

答案 0 :(得分:5)

您可以改为使用OfType<T>()

return FieldDefs.OfType<FieldDefEnum1>().ToList();

答案 1 :(得分:3)

FieldDefs.OfType<FieldDefEnum1>().ToList();

答案 2 :(得分:2)

要在值之间任意转换(“map”),请使用Select()

OfType()可能会更需要过滤和转换 - 尽管它会包含给定类型的子类,而不仅仅是特定类型的实例。