2012-01-10 14 views
15

मेरे पास यह कोड है जो मुझे मेरे सदस्यता प्रदाता का उपयोग करके सभी उपयोगकर्ताओं की एक सूची देता है।सदस्यता यूज़र चयन पर लिंक का उपयोग

 var users = Membership.GetAllUsers(); 
     var usernames = new List<string>(); 
     foreach(MembershipUser m in users) 
      usernames.Add(m.UserName); 

मैंने सोचा था कि LINQ का उपयोग करके यह करने के लिए एक आसान तरीका होना चाहिए, लेकिन मैं क्योंकि MembershipUserCollection केवल IEnumerable, नहीं IEnumerable<MembershipUser> लागू करता है एक MembershipUserCollection

उत्तर

31

पर LINQ का उपयोग नहीं कर पा रहे हैं, तो आप की जरूरत है तो Linq विस्तार विधि Cast का उपयोग तो अन्य Linq विस्तार तरीकों का उपयोग:

Membership.GetAllUsers().Cast<MembershipUser>().Select (m => m.UserName); 
+0

मुझे 30,000 रिकॉर्ड सॉर्ट करते समय "मूल्यांकन समय समाप्त" संदेश मिला –

3

आप LINQ उपयोग करने के लिए, यदि आप पहले इस पर Cast<T>() विधि का उपयोग सक्षम होना चाहिए।

इस तरह

:

var usernames = Membership.GetAllUsers().Cast<MembershipUser>().Select(x => x.UserName).ToList(); 
1

मैं सदस्यों की एक सामान्य सूची बनाने के लिए कोड के इस टुकड़े का प्रयोग किया:

List<Member> memberList = new List<Member>(); 
foreach (MembershipUser membershipUser in members) 
{ 
    int id = Convert.ToInt32(membershipUser.ProviderUserKey); 
    memberList.Add(new Member(id)); 
} 
2

आम तौर पर स्पष्ट कास्टिंग के लिए एक विकल्प है उपयोग करने के लिए

OfType<MembershipUser> 

तो आपके पास

है
संबंधित मुद्दे