C# 在IEnumerable中包含的linq
但它不工作,错误消息: 实例参数:无法从“System.Collections.Generic.IEnumerable”转换为“System.Linq.IQueryable”C# 在IEnumerable中包含的linq,c#,linq,ienumerable,contains,C#,Linq,Ienumerable,Contains,但它不工作,错误消息: 实例参数:无法从“System.Collections.Generic.IEnumerable”转换为“System.Linq.IQueryable” 如何根据selSender id获取包含的数据?看起来属性CreatedByUserID的类型为Nullable。您需要使用它的值来验证selSender是否包含它: RadGrid1.DataSource = messages.Where(m => selSender.Contains(m.CreatedByUs
如何根据selSender id获取包含的数据?看起来属性
CreatedByUserID
的类型为Nullable
。您需要使用它的值来验证selSender是否包含它:
RadGrid1.DataSource = messages.Where(m => selSender.Contains(m.CreatedByUserID));
我认为这很好,但在我的例子中,我需要在我尝试的linq查询之外使用selssender.Contains(m.CreatedByUserID):RadGrid1.DataSource=来自消息中的mes,其中selssender.Contains(mes.CreatedByUserID)选择mes;获取错误:实例参数:无法从“int[]”转换为“System.Linq.IQueryable”@user1450667在您请求查询结果之前(例如,通过使用foreach或调用ToList),不会执行Linq查询。因此,在您的情况下,在应用
。Where
之前不会执行查询。它将仅在RadGrid.DataSource
setter内执行。
RadGrid1.DataSource = messages.Where(m => selSender.Contains(m.CreatedByUserID));
RadGrid1.DataSource = from m in myEntities.Messages
where m.CreatedByUserID.HasValue &&
selSender.Contains(m.CreatedByUserID.Value)
select new {
m.Id,
m.MessageText,
m.CreatedByUserID
};