我有一个叫做分组的抽象类。我有一个名为GroupingNNA的子类。继承问题和List <>
public class GroupingNNA : Grouping {
// blah blah blah
}
我有一个包含类型GroupingNNA的项目,但实际上是宣告包含类型分组的项目的列表。
List<Grouping> lstGroupings = new List<Grouping>();
lstGroupings.Add(
new GroupingNNA { fName = "Joe" });
lstGroupings.Add(
new GroupingNNA { fName = "Jane" });
问题: 下面的LINQ查询在我身上吹,因为一个事实,即lstGroupings被声明为List <分组>和FNAME是GroupingNNA的分组的属性,不是。
var results = from g in lstGroupings
where r.fName == "Jane"
select r;
哦,这是一个编译器错误,而不是运行时错误。提前感谢您对这一个的任何帮助!
更多信息: 这是实际的方法,不会编译。 OfType()修正了LINQ查询,但是编译器不喜欢我试图将匿名类型作为列表< Grouping>返回的事实。
private List<Grouping> ApplyFilterSens(List<Grouping> lstGroupings, string fSens) {
// This works now! Thanks @Lasse
var filtered = from r in lstGroupings.OfType<GroupingNNA>()
where r.QASensitivity == fSens
select r;
if (filtered != null) {
**// Compiler doesn't like this now**
return filtered.ToList<Grouping>();
}
else
return new List<Grouping>();
}
谢谢!我现在更近一步了。但是,编译器现在不开心,因为我试图将匿名类型返回为列表< Grouping>。我会用一些更多的代码对我原来的帖子进行编辑,以便看到我在说什么。再次感谢。 – Jagd 2010-05-13 22:38:14