You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选LoginDate为当日且子列表仅含LoginPurpose为Update的ModelLogin列表

筛选逻辑实现

实现步骤

  • 第一层过滤:筛选所有ModelLogin实例中LoginDate等于dateTimeToday的项
  • 第二层过滤:对通过第一层过滤的每个实例,保留其LoginRecords子列表中LoginPurpose取值为Update的子项

代码实现(C#)

首先需要引入Linq命名空间:

using System.Linq;

方式1:生成新的结果列表(不修改原始数据,推荐)

var filteredLoginList = listLogins
    // 过滤今日登录的外层记录
    .Where(login => login.LoginDate == dateTimeToday)
    // 对每条符合条件的外层记录,过滤子列表
    .Select(login => new ModelLogin(
        login.LoginDate,
        login.LoginRecords.Where(record => record.LoginPurpose == "Update").ToList()
    ))
    .ToList();

方式2:直接修改原始列表和对象(会改动原有数据)

// 先删除非今日的外层记录
listLogins.RemoveAll(login => login.LoginDate != dateTimeToday);
// 遍历剩余记录,删除不符合要求的子项
foreach (var login in listLogins)
{
    login.LoginRecords.RemoveAll(record => record.LoginPurpose != "Update");
}

注意事项

如果LoginDate字段包含时分秒信息,仅需要匹配日期部分时,将判断条件修改为login.LoginDate.Date == dateTimeToday.Date即可。

样例执行结果

使用提供的测试数据执行后,最终得到的列表仅包含1条ModelLogin记录,其LoginRecords子列表仅保留Alex、David两条LoginPurpose为Update的记录,符合筛选要求。


内容的提问来源于stack exchange,提问作者Alexander Raymak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 13:12:01