سؤال

ولدي DataTable ويقوم بالاستعلام من شيء من هذا القبيل أدناه

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

ما أحاول القيام به هو كتابة بيان LINQ التي سيعود مجموعة من الحالات مجموعتهم. الطبقة مجموعات المستخدمين لديها خصائص UserGroupId والمستخدمين. المستخدمين هو مجموعة من الحالات العضو. الطبقة العضو ثم ديه خصائص معرف المستخدم واسم المستخدم.

ويمكن ملء مثل أن يتم التسلسل الهرمي مع بيان LINQ واحد وما من شأنه أن تبدو وكأنها؟

وشكرا مليون دولار

هل كانت مفيدة؟

المحلول

والتحقق من ذلك، ونأمل أن يساعد هذا

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);
}

نصائح أخرى

وهناك - ننظر GroupBy وطرق تحديد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top