使用LINQ to组对象的列表到对象名单,新名单分组 [英] Using Linq to group a list of objects into a new grouped list of list of objects
问题描述
我不知道这是可能的Linq但在这里去...
我有一个对象:
公共类用户
{
公众诠释用户名{搞定;组; }
公共字符串用户名{获得;组; }
公众诠释组ID {搞定;组; }
}
我返回一个列表可能如下所示:
列表<使用者>用户列表=新的List<使用者>();
userList.Add(新用户{用户名= 1,用户名=UserOne,组ID = 1});
userList.Add(新用户{用户名= 2,用户名=UserTwo,组ID = 1});
userList.Add(新用户{用户ID = 3,用户名=UserThree,组ID = 2});
userList.Add(新用户{用户名= 4,用户名=UserFour,组ID = 1});
userList.Add(新用户{用户名= 5,用户名=UserFive,组ID = 3});
userList.Add(新用户{用户名= 6,用户名=UserSix,组ID = 3});
我希望能够运行上面的列表组中的所有用户通过组ID在LINQ查询。因此,出酒馆将用户列表列表包含用户(如果是有道理的?)。因此,OUT输出会是这样的:
GroupedUserList
UserList的
用户ID = 1,用户名=UserOne,组ID = 1
用户ID = 2,用户名=UserTwo,组ID = 1
用户名= 4,用户名=UserFour,组ID = 1
UserList的
用户ID = 3,用户名=UserThree,组ID = 2
UserList的
用户名= 5,用户名=UserFive,组ID = 3
用户名= 6,用户名=UserSix,组ID = 3
我已经使用LINQ GROUPBY子句试图但这似乎返回键列表和它不是通过正确分组:
VAR groupedCustomerList = userList.GroupBy(U => u.GroupID).ToList();
任何帮助将是非常美联社preciated。
感谢
VAR groupedCustomerList =用户列表
.GroupBy(U => u.GroupID)
。选择(GRP => grp.ToList())
.ToList();
I don't know if this is possible in Linq but here goes...
I have an object:
public class User
{
public int UserID { get; set; }
public string UserName { get; set; }
public int GroupID { get; set; }
}
I return a list that may look like the following:
List<User> userList = new List<User>();
userList.Add( new User { UserID = 1, UserName = "UserOne", GroupID = 1 } );
userList.Add( new User { UserID = 2, UserName = "UserTwo", GroupID = 1 } );
userList.Add( new User { UserID = 3, UserName = "UserThree", GroupID = 2 } );
userList.Add( new User { UserID = 4, UserName = "UserFour", GroupID = 1 } );
userList.Add( new User { UserID = 5, UserName = "UserFive", GroupID = 3 } );
userList.Add( new User { UserID = 6, UserName = "UserSix", GroupID = 3 } );
I want to be able to run a Linq query on the above list that groups all the users by GroupID. So the out pub will be a list of user lists that contains user (if that makes sense?). So the out put would be something like:
GroupedUserList
UserList
UserID = 1, UserName = "UserOne", GroupID = 1
UserID = 2, UserName = "UserTwo", GroupID = 1
UserID = 4, UserName = "UserFour", GroupID = 1
UserList
UserID = 3, UserName = "UserThree", GroupID = 2
UserList
UserID = 5, UserName = "UserFive", GroupID = 3
UserID = 6, UserName = "UserSix", GroupID = 3
I've tried using the groupby linq clause but this seems to return a list of keys and its not grouped by correctly:
var groupedCustomerList = userList.GroupBy( u => u.GroupID ).ToList();
Any help would be much appreciated.
Thanks
var groupedCustomerList = userList
.GroupBy(u => u.GroupID)
.Select(grp => grp.ToList())
.ToList();
这篇关于使用LINQ to组对象的列表到对象名单,新名单分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!