【问题标题】:LINQ query on List<T> to get List<U> based on minimum valueList<T> 上的 LINQ 查询以根据最小值获取 List<U>
【发布时间】:2015-09-17 10:20:54
【问题描述】:

我有一个 List&lt;UserLoginRecord&gt; 对象,它由三个属性组成。

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),
                });

【问题讨论】:

  • 您的查询现在有什么问题?
  • “不起作用”基本上没有为我们提供任何信息。我怀疑问题只是你需要x.Key.UserIDx.Key.ID2,但在问题中表达确切的错误非常重要。
  • 我在Select 部分收到错误Can not resolve symbol x.UserIDCan not resolve symbol x.ID2Can not resolve symbol x.LoginTimeStamp

标签: c# linq list generics generic-list


【解决方案1】:
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),
                });

【讨论】:

    猜你喜欢
    • 2011-10-27
    • 2022-12-17
    • 2019-05-20
    • 1970-01-01
    • 2011-12-31
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    相关资源
    最近更新 更多