【发布时间】:2016-01-28 17:42:44
【问题描述】:
如果我使用类似的东西,我想查询列表中匹配某些值的项目,
var someList = someDbContext.Items.ToList();
var fullList = (from item in someList
where item.Name == data.Name
& item.Job == data.Job
select item).ToList();
说someList 包含姓名和工作,例如,
- 约翰,技术员
- Rachel,系统管理员
- Frank,IT 支持
现在如果 John, Technician 初始化如下:
data.Name = "John";
data.Job = "Technician";
这应该将此项目添加到列表中吗?但是,由于某种原因,它们不是,而当我这样做时,
var total = fullList.Count;
total 等于 0。
我错过了什么吗?为什么没有将技术员约翰添加到列表中?
这里是更具体的编码示例,
Data data = new Data();
Models.DataModel someDBContext = new Models.DataModel();
data.Name = "John";
data.Job = "Technician";
var someList = someDbContext.Items.ToList();
var fullList = (from item in someList
where item.Name == data.Name
& item.Job == data.Job
select item).ToList();
【问题讨论】:
-
问题似乎有点不清楚。请考虑改写它,并注意提供示例,供人们在尝试解决问题时自行编译和测试。
-
这些字段的类型是什么?字符串?我们可以得到对象定义吗?
-
您应该使用
&&而不是&。第一个是逻辑与运算符。其次是位运算符 -
类型是字符串。
-
@SergeyBerezovskiy 错了。您也可以将
&与bool值一起使用。&和&&在bool上使用时的区别在于后者会短路。