我有以下几点:
IQueryable<ViewAccountEntry> viewAccountEntries = db.AccountEntries
.Where(x => x.DEntryID == 0)
.Select(x => new ViewAccountEntry()
{
AccountEntry = x,
DAccountEntries = db.AccountEntries
.Where(y => y.DEntryID == 0
&& y.Amount == -x.Amount
&& y.DateEntry == x.DateEntry)
.ToList()
});
Pages = new PageInfo(viewAccountEntries.Count(), page);
ViewAccountEntries = viewAccountEntries
.OrderBy(x => x.AccountEntry.DateEntry)
.Skip(Pages.ItemsSkipped)
.Take(Pages.ItemsPerPage)
.ToList();
Run Code Online (Sandbox Code Playgroud)
在第Select()一个对象内部创建一个包含第二个列表的对象。
当.Count()被执行时,它执行获取第二的Select?还是知道它既不需要执行也不算聪明Select?
我有一个通用的基类,其他泛型类继承它:
public class B<T> {
private List<T> parent;
public bool IsInParent() { return parent.Contains(this); }
public void Attach() { parent.Add(this); }
}
Run Code Online (Sandbox Code Playgroud)
这两个this错误"无法转换B<T>为T.我明白这是因为this可能是其他T(协方差)的事实,因此不会进入a List<T>.我理解的很多.
如果我声明T继承自B<T>第一个没有错误,this但Add的错误this仍然存在.
public class B<T> where T : B<T> { ..... ]
Run Code Online (Sandbox Code Playgroud)
现在肯定如果每一个都T继承B<T>,那么每一个B<T>都是一个T,因此应该进入一个List<T>.
我究竟做错了什么?