【发布时间】:2013-11-01 18:23:55
【问题描述】:
我正在尝试仅选择受访者已完成但无法使用我的代码执行此操作的某些预筛选。
代码:
IEnumerable<PreScreener> testin = new List<PreScreener>();
for (int i = 0; i < respondent.PreScreenerResponses.Count; i++)
{
testin = project.PreScreeners.Where(x => x.Id == respondent.PreScreenerResponses[i].PreScreenerId);
}
型号:
public class PreScreener : IHasId, IHasProjectId
{
public int? Id { get; set; }
public int? ProjectId { get; set; }
public string ExternalId { get; set; }
public string Name { get; set; }
public int? PartialCount { get; set; }
public int? DisqualifiedCount { get; set; }
public int? CompleteCount { get; set; }
public DateTime? CreatedOn { get; set; }
public DateTime? UpdatedOn { get; set; }
public List<PreScreenerQuestion> Questions { get; set; }
}
public class PreScreenerResponse : IHasId, IHasProjectId
{
public int? Id { get; set; }
public int? ProjectId { get; set; }
public int? PreScreenerId { get; set; }
public int? RespondentId { get; set; }
public string Ip { get; set; }
public DateTime SubmittedDate { get; set; }
public DateTime CreatedOn { get; set; }
public double? Latitude { get; set; }
public double? Longitude { get; set; }
public Dictionary<short, PreScreenerQuestionResponse> Response { get; set; }
}
Respondent.PreScreenerResponses[i]
我只是想将所有预筛选者放入一个列表中,该列表还将包括受访者的回复。我想我会创建一个新列表,然后将两个不同的列表组合起来,但是我的选择 Where is not working 我总是得到一个空的 testin 列表。
根据响应编辑代码:
我试过没有用
IEnumerable<PreScreener> testin = new List<PreScreener>();
testin = project.PreScreeners.Where(p => respondent.PreScreenerResponses
.Select(r => r.PreScreenerId)
.Contains(p.Id));
有效的答案在下面打勾!!!
【问题讨论】:
标签: c# asp.net-mvc linq lambda