2009-04-25 18 views
5

मैं क्वेरीक और गैर-क्वेरी करने योग्य डेटा में LINQ का उपयोग कैसे करूं?LINQ आइटम ढूंढने के लिए शामिल हों सूची में नहीं

निम्नलिखित कोड के साथ मैं अचयनित उपयोगकर्ताओं की एक सूची के साथ समाप्त करना चाहता हूं, यानी सभी यूजर में सभी जो चयनित नहीं हैं।

public IQueryable<CompanyUser> FindAllUsersNotAssignedTothisCompany(int companyID) 
{ 
    var allUsers = Membership.GetAllUsers(); 
    var selected = db.CompanyUsers.Where(c => c.CompanyID == companyID); 
    ...? 
} 

मैं प्रभावी रूप से एक DropDownList में उपयोगकर्ता आईडी और नाम उपयोग के लिए उपयुक्त की एक सूची चाहते हैं (ASP.NET MVC)

उत्तर

18

यह मानते हुए कि दोनों allUsers और selected एक ही प्रकार के कर रहे हैं, आप इस का उपयोग कर सकते Except

public IQueryable<CompanyUser> FindAllUsersNotAssignedTothisCompany(int companyID) 
{ 
    var allUsers = Membership.GetAllUsers(); 
    var selected = db.CompanyUsers.Where(c => c.CompanyID == companyID); 
    return allUsers.Except(selected); 
} 
हालांकि

db.CompanyUsers पहले से ही सभी उपयोगकर्ताओं है और आप सभी की जरूरत उन है कि खोज में companyID नहीं है पुनः प्राप्त करने के है अगर आयन केवल:

return db.CompanyUsers.Where(c => c.CompanyID != companyID); 
0

एक पंक्ति में इस प्रयास करें:

db.CompanyUsers.Where(c => !allUsers.Any(d=> d.CompanyID == a.companyID))).ToList(); 
संबंधित मुद्दे