gpt4 book ai didi

c# - 使用 Linq 和 lambda 来展平列表

转载 作者:太空狗 更新时间:2023-10-29 23:56:59 25 4
gpt4 key购买 nike

我有课。

public class MedicalRequest
{
private int id
private IList<MedicalDays> Days
private string MedicalUser
...
}

还有一个

public class MedicalDays
{
private int id;
private DateTime? day
private MedicalRequest request
...
}

我有 MedicalUser,所以我可以选择一个

IList<MedicalRequest> reqList = dao.FindAll(example);

此时我希望能够做的是展平 MedicalDays 列表并返回 DateTime 日期。

有点像

IList<DateTime> dateList = reqList.SelectMany(i => i.MedicalDays.day);

有人能给我一个正确的方向吗?

感谢您的宝贵时间。

最佳答案

你快到了:

IEnumerable<DateTime?> dateList = reqList.SelectMany(i => i.MedicalDays)
.Select(m => m.day);

或者:

IEnumerable<DateTime?> dateList = reqList.SelectMany(i => i.MedicalDays,
(i, m) => m.day);
  • 如果你需要 IList<T>而不是 IEnumerable<T>你可以调用ToList()关于结果
  • 如果您需要使用 DateTime而不是 DateTime?您可以像这样过滤掉空天数:

    IEnumerable<DateTime?> dateList = reqList.SelectMany(i => i.MedicalDays)
    .Select(m => m.day)
    .Where(x => x.HasValue)
    .Select(x => x.Value);

关于c# - 使用 Linq 和 lambda 来展平列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3352408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com