小编Cap*_*and的帖子

可查询和计数

我有以下几点:

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

c# linq iqueryable

2
推荐指数
1
解决办法
3429
查看次数

通用基础,协变

我有一个通用的基类,其他泛型类继承它:

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>.

我究竟做错了什么?

c# generics list add covariance

0
推荐指数
1
解决办法
232
查看次数

标签 统计

c# ×2

add ×1

covariance ×1

generics ×1

iqueryable ×1

linq ×1

list ×1