0
排序的列表檢索下一個記錄日期考慮按日期時間
ID NAME DATE
1 Mary 01-01-1901
2 Mary 01-01-1901
3 Mary 01-01-1901
4 Mary 01-01-1901
5 Lucy 01-01-1951
6 Peter 01-01-1961
以上的下列列表進行排序按日期列表。因此在數據庫中它不是這樣表示的。
我想在列表中獲取下一條記錄日期。我正在做的是,從數據庫中檢索 人員列表,然後按日期排序,然後按ID排序。發生了什麼事是 ID返回總是相同的:
下一條記錄 - > 2 - >下一條記錄 - > 1 - >下一條記錄2 等等......看起來我卡在第一個2條記錄。我使用LINQ到SQL
下面是我使用來實現這一
string newID = dx.Persons
.AsEnumerable()
.ToList()
.Where(
x => x.DOB.CompareTo(newConvertedValue) == 0 && x.Id > currentID
||
x.DOB.CompareTo(newConvertedValue) > 0 && x.Id != currentID)
.OrderBy(x => x.DOB)
.ThenBy(x => x.Id)
.Select(x => x.Id.ToString(CultureInfo.InvariantCulture))
.First();
對我來說是沒有意義的指定具備條件後,對列表進行排序的代碼,但是當我試圖修改 聲明我在順序異常中得到了一個no元素。
請注意,上述變量的含義如下: newConvertedvalue =當前顯示記錄的出生日期 currentID =當前顯示記錄的ID。
我試過使用不同的解決方案,但我似乎無法找到解決此問題的方法。
我已經實現了類似的方法來排序和獲取包含整數和字符串, 哪些工作正常(也感謝來自這個偉大的網站貢獻)的列的下一個記錄。 但是這個包含日期的列讓我很難過。
感謝您的閱讀。
你爲什麼不只需將其取出。首先'()'和'使用.ToArray()'返回回一個字符串[]的ID的?然後,您可以簡單地使用foreach或for語句循環遍歷每個ID – Gavin 2012-08-06 09:44:39
您知道'dx.Persons.AsEnumerable()'(此外,'.ToList()')表示您吸收了*整個*表的電線進入內存?你不應該在服務器*上做這個*嗎? – 2012-08-06 09:44:55
我只需要從按日期排序的列表中獲取下一條記錄。我使用ID來確保如果日期相同,它將獲取下一個立即ID的記錄(通過確保它大於前一個ID)。據我所知,我不能循環遍歷每個id。 – DottoreM 2012-08-06 10:31:21