c# - List<T> 上的 LINQ 查询根据最小值获取 List<U>

标签 c# linq list generics generic-list

我有一个 List<UserLoginRecord> 对象,它由三个属性组成。

UserID  ID2      LoginTimeStamp
1234567 300009   04/08/2015 18:55:45
1234567 300009   04/08/2015 09:12:32
7654321 300010   14/08/2015 11:55:45
7654321 300010   20/08/2015 13:38:00

我想运行 Linq 查询以仅返回 UserID 和 UserID2 组合的第一条记录。即以下输出

UserID  ID2      LoginTimeStamp
1234567 300009   04/08/2015 09:12:32
7654321 300009   14/08/2015 11:55:45

我已经尝试了以下方法,不幸的是不起作用。有人可以帮我吗?

   var newList = o_userLoginList.GroupBy(gby => new {gby.UserID, gby.ID2})
                .Select(x => new UserLoginRecord
                {
                    UserID = x.UserID,
                    ID2 = x.ID2,
                    LoginTimeStamp = x.Min(LoginTimeStamp),
                });

最佳答案

var newList = o_userLoginList.GroupBy(gby => new {gby.UserID, gby.ID2})
                .Select(x => new UserLoginRecord
                {
                    UserID = x.Key.UserID,
                    ID2 = x.Key.ID2,
                    LoginTimeStamp = x.Min(y=>y.LoginTimeStamp),
                });

关于c# - List<T> 上的 LINQ 查询根据最小值获取 List<U>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32627976/

相关文章:

c# - NUnit 测试中的 Lambda 和委托(delegate)类型 : compiler errors

c# - 为什么编译器不推断泛型类型

c# - MVC RoleProvider 和 Authorize 属性

c# - C#-添加到字符串[]成员

c# - 按子句分组与 Distinct()

c++ - 双向链表添加元素

C# : using Regex to match 4 numbers in a long line of text

c# - Linq子查询同表

python:将列表转换为字符串,仅当 ','不存在时才添加 '|'

C# - 列表中的列表