linq 按字段删除所有重复记录,只保留一条

kdfy810k  于 2023-06-03  发布在  其他
关注(0)|答案(1)|浏览(170)

我在数据库中有一个表,从中提取数据并在应用程序中显示。
粗略地说,该表有两个字段:item_id和event字段。
事件字段显示为枚举(记录表中的数字)。

事实证明,有一个事件是用户不想看到的。
现在有一个小难题。有必要按原样显示所有内容,但不能多次在此项目上显示同一事件。有这样一个选择。但它并不适合,因为它只需要所有分组的1条记录

var dummyVariable = result
                    .GroupBy(x => x.ActionCode)
                    .Select(group => group.First())
                    .ToList();

这是一个类:

public class GetBookingEventsRpcResponse
{
    public long BookingEventId { get; set; }

    public DateTimeOffset? EventDateTime { get; set; }

    public BookingEventActionType ActionCode { get; set; }
}

实际结果现在看起来像数据库的屏幕截图。我想避免重复ActionCode for(int)52。
相信解释是清楚的。

jq6vz3qz

jq6vz3qz1#

听起来你需要这个:

var dummyVariable =
    result
        .GroupBy(x => x.ActionCode)
        .SelectMany(group => group.Key == 52 ? group.Take(1) : group)
        .ToList();

相关问题