我试图获取包含某组数据的所有数据行。
在我的数据库中,我有一些值,包括开始和长度。
我有一个数组,其中包含名为startTimes的整数和另一个名为endTimes的整数。
我需要一个where子句来返回包含在startTimes中的起始值的记录,或者包含在endTimes中的start + length。
有没有办法做到这一点?
由于
IQueryable<request> proposedRequest = db.requests.Include(r => r.rooms);
proposedRequest = proposedRequest.Where(r=>r.booked.Equals(1));
proposedRequest = proposedRequest.Where(r=>r.roundID.Equals(roundID))8;
proposedRequest = proposedRequest.Where(r=>r.day.Equals(day));
int[] startTimes;
int[] endTimes;
for(var q=0;q<time;q++){
startTimes[startTimes.Length] = time + q;
endTimes[endTimes.Length] = time + q + 1;
}
proposedRequest = proposedRequest.Where(//what goes in here);
答案 0 :(得分:2)
会这样吗?
var data = collection.Where(
t => startTimes.Contains(t.theTime) ||
endTimes.Contains(t.theTime + theLength));
答案 1 :(得分:2)
我有一个数组startTime = [1,3,4]和一个数组endTime = [2,4,5] let 说。我需要看看这些值是否符合我的记录?我不 认为上面会做这个工作
要检查您是否在Array of int中有值,请使用包含方法:
proposedRequest = proposedRequest.Where(s => startTimes.Contains(s.INT_ID)
|| endTimes.Contains(s.INT_ID));
语法:ARRAY.Contains(ID_TO_SEARCH)
它返回一个布尔值:
var list = new List<int> {1,2,3,4,5};
var intVar = 4;
var exists = list.Contains(intVar);
答案 2 :(得分:1)
proposedRequest.Where(pr => startTimesArray.Contains(pr.start) || endTimesArray.Contains(pr.start + pr.length));