2016-11-22 58 views
0

我有下面的代碼片段,以數據作爲IEnumarable列表獲取和使用LINQ它們進行過濾,並將這些信息以列表/篩選列表項添加到集合中的ASP.NET MVC

IEnumerable<User> listUsers = ..// From DB 
    List<User> filteredUsers = new List<User>(); 

    if (listUsers != null) 
    {       
    foreach(var user in listUsers) 
    { 
     filteredUsers = listUsers.Where(x => x.GroupID == item).ToList();        
    }      
    } 

如何插入這些每個filteredUsers項目集合,我試着像下面但這是編譯時錯誤,如何做到這一點正確

 IEnumerable<User> listUsers = ..// From DB 
     List<User> filteredUsers = new List<User>(); 
     IEnumerable<User> salistUsers = new List<User>(); 

     if (listUsers != null) 
     {       
     foreach(var user in listUsers) 
     { 
      filteredUsers = listUsers.Where(x => x.GroupID == item).ToList(); 
      salistUsers.Add(filteredUsers);       
     }      
     } 

回答

1

變化salistUsersIEnumerable<User>類型List<Users>和使用List.AddRange(collection As IEnumerable(Of T))方法。

IEnumerable<User> listUsers = ..// From DB 
List<User> salistUsers = new List<User>(); 

if (listUsers != null && !listUser.Any()) 
{       
    var filteredUsers = listUsers.Where(x => x.GroupID == item).ToList(); 
    salistUsers.Add(filteredUsers);            
} 
+0

這應該是在for循環或外? – kez

+0

沒有必要使用'foreach'。 –

+0

錯誤\t''System.Collections.Generic.IEnumerable '不包含'Add'的定義,並且沒有擴展方法'Add'接受'System.Collections.Generic.IEnumerable '類型的第一個參數' – kez

0

不能與IEnumerable使用.Add,salistUsers前人的精力是List

List<User> salistUsers = new List<User>(); 

Add方法用於添加單個對象。

嘗試AddRange相反,它允許您添加列表:

if (listUsers != null && !listUser.Any()) 
{       
    var filteredUsers = listUsers.Where(x => x.GroupID == item).ToList(); 
    salistUsers.AddRange(filteredUsers);            
} 
+0

這是不工作''System.Collections.Generic.List .Add(User)'的最佳重載方法匹配有一些無效參數' – kez