将LINQS查询的结果追加到分页列表

本文关键字:分页 列表 追加 结果 LINQS 查询 | 更新日期: 2023-09-27 18:17:04

我确信一个简单的修复,但我似乎找不到一个修复我所遇到的问题。这个想法是,它会循环通过"扩展",并找到所有的结果,我需要在最后附加结果,但我所尝试的一切似乎都不起作用。如有任何意见,不胜感激。

string s = cdr.callingPartyNumber;
string[] exts = s.Trim().Split(',');
foreach (string ext in exts)
{
    var calls = db.CallDetails.Where(x => x.dateTimeConnect >= cdr.dateTimeConnect && x.dateTimeDisconnect <= cdr.dateTimeDisconnect && x.callingPartyNumber.Contains(ext)).Select(x =>
        new CallDetailDTO
        {
            origSpan = x.origSpan,
            callingPartyNumber = x.callingPartyNumber,
            callingPartyUnicodeLoginUserID = x.callingPartyUnicodeLoginUserID,
            originalCalledPartyNumber = x.originalCalledPartyNumber,
            dateTimeConnect = x.dateTimeConnect,
            duration = x.duration
        })
        .ToList();

    cdr.TotalResults = cdr.TotalResults + calls.Count;
    cdr.Calls = calls.ToPagedList(cdr.Page, pageSize);
}

将LINQS查询的结果追加到分页列表

您只看到最后一个calls的原因是您在每次迭代中不断重写cdr.Calls:

cdr.Calls = calls.ToPagedList(cdr.Page, pageSize);

我假设cdr.Calls是某种List<CallDetailDTO>

你需要做的是使它成为List<List<CallDetailDTO>>,并为每个ext使用List.Add:

cdr.Calls.Add(calls.ToPagedList(cdr.Page, pageSize));