我有一个从数据库中的视图生成的列表。我想使用linq和c#将结果转换为自己的类。我想按ID分组,然后从第一个分组中选择所有值,但也从分组中的第二个实体中选择一个值。
例如
我希望能够按ID分组,从第一条记录中选择得分1和2(它们将始终相同),但也选择名称jack和jill。
这甚至可能吗?
由于
答案 0 :(得分:1)
为什么不让它变得简单,除了名字之外的所有东西?如果您说的是真的,那么这应该没有问题,整个ID的分数是相同的。
var result = from user in users
group user by new {user.Id, user.Score1, user.Score2}
into groupedUsers
select new { groupedUsers.Key.Id, groupedUsers.Key.Score1, groupedUsers.Key.Score2, Names = groupedUsers.Select(x => x.Name)};
这是假设您使用以下模型对id上的所有记录进行分组,而不仅仅是前2个遇到具有相同ID的记录。
public class User
{
public string Name { get; set; }
public int Id { get; set; }
public int Score2 { get; set; }
public int Score1 { get; set; }
}