【问题标题】:List<T>.SelectMany(), Linq and lambdaList<T>.SelectMany()、Linq 和 lambda
【发布时间】:2010-05-19 09:13:51
【问题描述】:

我有课。

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

我正在使用 nhibernate 返回一个时间跨度内所有 MedicalDays 的列表。我想对结果列表做这样的事情

//nhibernate query
IList<MedicalDays> days = daysDao.FindAll(searchCritCollection);

//select a list of days from resulting list
IEnumerable<MedicalDays> queriedList = 
        days.SelectMany(i => i.MedicalRequest.MedicalUser == employee);

Linq 告诉我无法通过用法推断类型。我想知道我做错了什么,以及是否有更好的方法来做这样的事情。

感谢您的宝贵时间。

【问题讨论】:

  • 杰森的回答是要走的路。这是一个很好的例子,说明了如何使用 SelectMany:weblogs.asp.net/zeeshanhirani/archive/2008/03/26/…
  • 谢谢大卫,当我发布得更远时,我尝试了 Where() 并没有得到任何结果,因为我的员工字符串末尾有一些额外的空格。

标签: c# linq nhibernate lambda extension-methods


【解决方案1】:

在我看来,您想过滤列表days。如果这是你想要的,你应该使用

days.Where(i => i.MedicalRequest.MedicalUser == employee);

【讨论】:

  • 我试过了,我没有得到任何错误,我也没有得到任何结果。我可以看到 employee 和 i.medicalrequest.medicaluser 的值相等,但在 queriedList 中没有得到任何结果
  • 别在意最后的评论。我的一根弦的末端有一些空白。感谢您的宝贵时间和快速答复。
猜你喜欢
  • 2013-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多