[英]linq where Contains in IEnumerable
//\\ ---- selected items from ChechBoxList
IEnumerable<int> selSender = (from ListItem item in CheckBoxList1.Items.OfType<ListItem>()
where item.Selected
select Convert.ToInt32(item.Value));
//\\ --- linq query
var messages = from m in myEntities.Messages
select new {
m.Id,
m.MessageText,
m.CreatedByUserID
};
my problem is: i need to get data filtered by selected items from CheckBoxList "selSender" I tried the following: 我的问题是:我需要从CheckBoxList“ selSender”中按选定的项目过滤数据,我尝试了以下操作:
RadGrid1.DataSource = messages.Where(m => selSender.Contains(m.CreatedByUserID));
But it's not working, error message: 但这不起作用,错误消息:
Instance argument: cannot convert from 'System.Collections.Generic.IEnumerable' to 'System.Linq.IQueryable 实例参数:无法从“ System.Collections.Generic.IEnumerable”转换为“ System.Linq.IQueryable”
How can i get data contains based on selSender id's? 如何获取基于selSender ID的数据?
Looks like property CreatedByUserID
has type of Nullable<int>
. 看起来属性
CreatedByUserID
类型为Nullable<int>
。 You need to use it's value for verifying if selSender contains it: 您需要使用它的值来验证selSender是否包含它:
RadGrid1.DataSource = from m in myEntities.Messages
where m.CreatedByUserID.HasValue &&
selSender.Contains(m.CreatedByUserID.Value)
select new {
m.Id,
m.MessageText,
m.CreatedByUserID
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.