LINQ تجمع / فرعي لملء بنية بيانات التسلسل الهرمي
-
11-07-2019 - |
سؤال
ولدي 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 وطرق تحديد
لا تنتمي إلى StackOverflow