[英]LINQ Where clause Multiple conditions
我試圖獲取包含某組數據的所有數據行。
在我的數據庫中,我有一些值,包括開始和長度。
我有一個數組,其中包含名為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);
會是這樣的嗎?
var data = collection.Where(
t => startTimes.Contains(t.theTime) ||
endTimes.Contains(t.theTime + theLength));
我有一個數組startTime = [1,3,4]和一個數組endTime = [2,4,5]讓我們說。 我需要看看這些值是否符合我的記錄? 我不認為上面會做這個工作
要檢查您是否在Array of int中有值,請使用Contains方法:
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);
proposedRequest.Where(pr => startTimesArray.Contains(pr.start) || endTimesArray.Contains(pr.start + pr.length));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.