考慮下面的類後:查找平均和最大時間與LINQ分組
public class SessionData
{
public Guid Session { get; set; }
public DateTime Date { get; set; }
}
,並提出了名單出來的:
public static List<SessionData> GetSessionData()
{
Guid guid1 = Guid.NewGuid();
Guid guid2 = Guid.NewGuid();
List<SessionData> sessionData = new List<SessionData>
{
new SessionData {Session = guid1, Date = DateTime.UtcNow.AddMinutes(3)},
new SessionData {Session = guid1, Date = DateTime.UtcNow.AddMinutes(2)},
new SessionData {Session = guid2, Date = DateTime.UtcNow.AddMinutes(5)},
new SessionData {Session = guid2, Date = DateTime.UtcNow.AddMinutes(4)},
new SessionData {Session = guid1, Date = DateTime.UtcNow.AddMinutes(20)},
new SessionData {Session = guid1, Date = DateTime.UtcNow.AddMinutes(25)},
new SessionData {Session = guid2, Date = DateTime.UtcNow.AddMinutes(20)},
new SessionData {Session = guid1, Date = DateTime.UtcNow.AddMinutes(1)},
};
return sessionData;
}
我想找到會話的平均持續時間(1 )和最長的會話(2)。每天(3),周(4),月(5),年(6),總計(7)有多少次會話?
我試圖從
var list = (from t in sessionData group t.Date by t.Session).ToList();
啓動並試圖找到時間(最長日期 - 分鐘日期)每個會話,並從那裏繼續。有沒有更好的方法直接用Linq做這些計算?
你在_「平均會話時間」下的含義_?像數字一樣,你有什麼和你期望得到什麼? – SeM
如何確定會話持續時間?你需要一個開始和結束時間 – Nkosi
@Nkosi我問了同樣的問題,但我的猜測是每個會話都有一個起點,最後是列表中的下一個會話開始時,但列表沒有排序。 .yet –