gpt4 book ai didi

c# - 汇总列表中所有记录的日期时间属性

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:49 24 4
gpt4 key购买 nike

在一个操作方法中,我有以下查询:

var list = listWRUD.
Join(db.UsersDetails,
o => o.UserDetailsId, od => od.identtyUserId,
(o, od) => new
{
fname = od.FirstName,
lname = od.LastName,
UserDetailsId = o.UserDetailsId,
FocusStart = o.FocusStart,
FocusEnd = o.FocusEnd
}).ToList()

它基本上给了我一个包含很多重复名称的列表。

我想要实现的(并且不知道如何实现)是 RolesUsersViewModel 类型的另一个列表:

public class RolesUsersViewModel
{
public RolesUsersViewModel(string FirstName, string LastName, TimeSpan totalex)
{
fname = FirstName;
lname = LastName;
total = totalex;
}

public string fname { get; set; }
public string lname { get; set; }
public TimeSpan total{ get; set; }
}

我的想法是,如果查询给我一个包含三个结果的列表,其中两个是具有相同名称的结果,最后会有一个包含两个条目的 View 模型列表,其中将累积时间。

有人可以帮忙吗?这可以仅使用 lambda 来完成吗?

最佳答案

加入两个集合后,您可以按名字和姓氏对结果进行分组,并计算时间间隔的总和:

from x in list
group x by new { x.fname, x.lname } into g
select new RolesUsersViewModel {
fname = g.Key.fname,
lname = g.Key.lname,
total = g.Sum(x => x.FocusEnd - x.FocusStart)
}

关于c# - 汇总列表中所有记录的日期时间属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com