मुझे नहीं पता कि क्या यह लिनक में संभव है लेकिन यहाँ जाता है ...
मेरे पास एक वस्तु है:
public class User
{
public int UserID { get; set; }
public string UserName { get; set; }
public int GroupID { get; set; }
}
मैं एक सूची देता हूं जो निम्नलिखित की तरह दिख सकती है:
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 } );
मैं उपरोक्त सूची पर एक Linq क्वेरी चलाने में सक्षम होना चाहता हूं जो GroupID द्वारा सभी उपयोगकर्ताओं को समूहित करता है। तो आउटपुट उपयोगकर्ता सूचियों की एक सूची होगी जिसमें उपयोगकर्ता होता है (यदि यह समझ में आता है?)। कुछ इस तरह:
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
मैंने ग्रुपबी लाइनक क्लॉज का उपयोग करने की कोशिश की है, लेकिन यह कुंजी की सूची और इसके सही तरीके से समूहीकृत नहीं होने पर वापस लौटा लगता है:
var groupedCustomerList = userList.GroupBy( u => u.GroupID ).ToList();