【发布时间】:2017-01-05 19:08:51
【问题描述】:
我是 Linq 的新手,我有以下情况。
class Program
{
static void Main(string[] args)
{
var address = new List<Address>();
address.Add(new Address { AddressLine = "Address 1", City = "City 1", State = "State 1", UserId = 1 });
address.Add(new Address { AddressLine = "Address 1 Dup", City = "City 1", State = "State 1", UserId = 1 });
address.Add(new Address { AddressLine = "Address 2", City = "City 2", State = "State 2", UserId = 2 });
address.Add(new Address { AddressLine = "Address 2 Dup", City = "City 2", State = "State 2", UserId = 2 });
address.Add(new Address { AddressLine = "Address 3", City = "City 3", State = "State 3", UserId = 1 });
address.Add(new Address { AddressLine = "Address 3 Dup", City = "City 3", State = "State 3", UserId = 1 });
var users = new List<User>();
users.Add(new User { Id = 1, Name = "User 1", NickName = "user 1", Address = address });
users.Add(new User { Id = 2, Name = "User 1", NickName = "user 2", Address = address });
users.Add(new User { Id = 3, Name = "User 2", NickName = "user 3", Address = address });
users.Add(new User { Id = 4, Name = "User 2", NickName = "user 4", Address = address });
}
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public List<Address> Address { get; set; }
public string NickName { get; set; }
}
public class Address
{
public string AddressLine { get; set; }
public string City { get; set; }
public string State { get; set; }
public int UserId { get; set; }
}
我想按用户名对用户类列表进行分组,因此如果上述示例的地址前两个名为 user1 的对象应合并为一个对象。两个对象的地址应合并为一个。
【问题讨论】:
-
所以它应该为每个用户返回一个地址列表?
-
您如何看待合并? "Address 1" + "Address 1 Dup" = "Address 1Address 1 Dup",还是取地址线最长的地址?还是“AAdddrreessss 11 Dup”(合并它)?