在LINQ中将多行值转换为Collection(List)

时间:2012-04-07 09:54:31

标签: sql database linq collections

我正在努力将属于同一用户的多行值转换为集合。

这是一个简单的场景。

用户表:userid,密码

地址表:地址,用户ID

用户表和地址表是一对多相关的 - 一个用户可能有多个地址。 假设用户的ID为1001,而他/她有两个地址,一个在奥克兰,另一个在惠灵顿。 我想选择它们和用户的ID。 1001奥克兰 1001惠灵顿 所以问题是有没有任何方法能够将这两个值放入像列表一样的集合中。

public class UserDetails{
    private List<String> _Address
    public string userid{get;set;}
    public List<String> Address{
    get{retrun _Address;}
    set{_Address=value;}
}
}

var user_address= from _user in users 

                  join _address in address on _user.userid=_address.userid

                  select new userDetails{
                  userid=_user.userid
                  **Address.add()**
};

有没有人知道如何在LINQ中构造List并调用add方法。 我想将列表对象放入一行,以避免用户ID的冗余。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

也许是这样的:

var user_address= from _user in users 
                  select new userDetails{
                  userid=_user.userid,
                  Address=(from _address in address
                           where _user.userid=_address.userid
                           select _address.:address
                           ).ToList()
};

您不必加入地址表。