Saya tidak tahu apakah ini mungkin di Linq tapi begini ...
Saya punya objek:
public class User
{
public int UserID { get; set; }
public string UserName { get; set; }
public int GroupID { get; set; }
}
Saya mengembalikan daftar yang mungkin terlihat seperti berikut:
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 } );
Saya ingin dapat menjalankan kueri Linq pada daftar di atas yang mengelompokkan semua pengguna berdasarkan GroupID. Jadi output akan menjadi daftar daftar pengguna yang berisi pengguna (jika itu masuk akal?). Sesuatu seperti:
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
Saya sudah mencoba menggunakan klausa groupby linq tetapi ini sepertinya mengembalikan daftar kunci dan tidak dikelompokkan dengan benar:
var groupedCustomerList = userList.GroupBy( u => u.GroupID ).ToList();