我将 Cases 与 Controls 匹配,基本上是 Case 列表中的记录,需要具有 string 中指定的匹配数m_ctrlno
。
到目前为止,我有两个列表,where 子句是正确的,但是我不确定如何使用SelectMany
来获取匹配 1 个案例的 3 个控件。我决定使用该.Take()
功能,但它似乎不起作用。当我在 var 查询上循环时,我没有得到与 3 个不同控件相同的情况。
这是代码:
List<CaseSelection> CurrentCaseList = new List<CaseSelection>();
foreach (CaseSelection CurrentCase in m_casesarraylist)
CurrentCaseList.Add(CurrentCase);
List<ControlSelection> CurrentControlList = new List<ControlSelection>();
foreach (ControlSelection CurrentControlRec in ControlList)
CurrentControlList.Add(CurrentControlRec);
var query = CurrentCaseList.SelectMany(
c => CurrentControlList.Where(o => o.pracid == c.pracid && o.sex == c.sex &&
CaseSelectionList.AgeIsInRange(c.yob, o.yob, m_years)),
(c, o) =>
new { o, c }).Take(m_ctrlno);