我的方法和通用列表有问题。
public class TestList : List<Test2>
{
public TestList getWork()
{
return (TestList)this.Where(a => a.ID=10);
}
}
我有以下错误:无法将'WhereListIterator`1 [Test2]'类型的对象强制转换为'TestList'。
示例2,为什么不使用这样的代码是个好主意:
public class Parent : List<Child>
{
public Parent GetChildOf(Child child)
{
...
return childofchild;
}
public Parent GetParentOf(Child child)
{
...
}
}
在控制.net中的代码中我使用我的类:
parents.GetParentOf(childselected).GetParentOf(otherchild);....
感谢您的帮助。
答案 0 :(得分:1)
即使TestList 是 List<Test2>
,也并不意味着List<Test2>
都是TestList
。您需要创建类的新实例,而不是仅仅尝试转换LINQ结果。
试试这个:
var testList = new TestList();
testList.AddRange(this.Where(a => a.ID=10));
return testList;
但是,Servy的评论是正确的,创建一个扩展List<>
的集合类型可能是个坏主意。如果您想要一个包含大量Test2
s的类以及其他信息,最好创建一个将这些部分作为单独属性的类:
public class TestList
{
public string SomeRandomInfo {get;set;}
public List<Test2> Test2s {get;set;}
}