我有事件在C#的網頁的列表,其中包括屬性C#日期時間列表相對於日期排序爲當前日期
- 日期(
DateTime
) - 和描述(
string
)。
我想使用LINQ按日期對此列表進行排序,但是我想在列表中第一個和最後一個最近的日期(到當前日期)執行此操作。
因此,例如,如果日期是1月1日,則列表中的第一個將是1月1日,最後一個將在12月31日。
日和月是相關的,但一年不是。
我研究這個,但我真的不知道從哪裏開始。
任何幫助將不勝感激。
感謝所有的答案,對不起我的問題是含糊不清。我試圖列出日期的事件列表,最近的日期在列表頂部 - 例如生日列表 - 最後一個即將到來的生日,最後一個即將到來的生日。我確信我的代碼可以分開,因爲我絕不是專業人士 - 但這是我需要的。
,這是我到底是怎麼回答了這個問題:
我創建了事件類:
public class Events
{
public int ContactId { get; set; }
public string Lastname { get; set; }
public string Firstname { get; set; }
public DateTime EventDate { get; set; }
public string Description { get; set; }
public DateTime Now { get; set; }
public bool Reminder { get; set; }
public TimeSpan Difference { get; set; }
public int SortValue { get; set; }
public Events(int contactId, DateTime date, string lastname, string firstname, string description, bool reminder)
{
ContactId = contactId;
EventDate = date;
Description = description;
Reminder = reminder;
Now = DateTime.Now;
Lastname = lastname;
Firstname = firstname;
Difference = EventDate - Now;
SortValue = Convert.ToInt32(Difference.Days % 365);
if (SortValue < 0) { SortValue += 365; }
}
}
然後我用我的代碼如下:
var upcomingEvents = new List<Events>();
foreach (var eventt in db.Query("SELECT CONTACT_ID, LASTNAME, FIRSTNAME, DATE, DESCRIPTION, REMINDER FROM CONTACTS INNER JOIN EVENTS ON CONTACTS.ID = EVENTS.CONTACT_ID WHERE CONTACTS.CUSTOMER_ID = @0", WebSecurity.CurrentUserId)){
var newEvent = new Events(eventt.CONTACT_ID, eventt.DATE, eventt.LASTNAME, eventt.FIRSTNAME, eventt.DESCRIPTION, eventt.REMINDER);
upcomingEvents.Add(newEvent);
}
upcomingEvents = upcomingEvents.OrderBy(x => x.SortValue).ThenBy(x=>x.Lastname).ToList();
嘿,幫個忙,寫下5個隨機日期,然後寫下你想要的順序。在你的問題中做。插圖比混淆詞更具吸引力 –
另外,假設你現在的日期是6月16日。現在你想讓6月17日在6月15日之前或之後出現嗎? – dotNET
你的問題在這裏非常模糊,只是一個文本牆,其中一個例子解釋了你的問題的一面。請使用更多示例改進它,並告訴我們您嘗試過的內容。 – Cheesebaron