Question

J'ai un DataTable qui interroge quelque chose comme ci-dessous

usergroupid...userid......username
1.............1...........John
1.............2...........Lisa
2.............3...........Nathan
3.............4...........Tim

Ce que j'essaie de faire, c’est d’écrire une instruction LINQ qui renverra un tableau d’instances UserGroup. La classe UserGroup a les propriétés UserGroupId et Users. Utilisateurs est un tableau d'instances utilisateur. La classe User a alors les propriétés UserId et UserName.

Peut-on remplir une telle hiérarchie avec une seule instruction LINQ et à quoi ressemblerait-elle?

Merci mille fois

Était-ce utile?

La solution

Cochez cette case, espérons que cela vous aidera

var users = new[] 
{
    new {UserGroupId = 1, UserId = 1, UserName = "John"},
    new {UserGroupId = 1, UserId = 2, UserName = "Lisa"},
    new {UserGroupId = 2, UserId = 3, UserName = "Nathan"},
    new {UserGroupId = 3, UserId = 4, UserName = "Tim"}
};

var userGroups = from user in users 
                 group user by user.UserGroupId into userGroup 
                 select new {
                                UserGroupId = userGroup.Key, 
                                Users = userGroup.ToList()
                            };

foreach (var group in userGroups)
{
    Console.WriteLine("{0} - {1}",group.UserGroupId, group.Users.Count);
}

Autres conseils

Voir les méthodes GroupBy et Select.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top