2016-11-22 19 views
0

のI/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を挿入する方法コレクションにアイテムは、私は以下のようなものを試してみましたが、これはList<Users>IEnumerable<User>から、この適切

 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

変更salistUsers種類を行うと、を使用する方法、コンパイル時にエラーが発生しています方法。あなたがIEnumerable.Addを使用することはできません

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

これは、ループや外部のために内部すべきですか? – kez

+0

'foreach'ロップは必要ありません。 –

+0

エラー\t '' System.Collections.Generic.IEnumerable 'に' Add 'の定義がなく、' System.Collections.Generic.IEnumerable 'タイプの最初の引数を受け入れる拡張メソッド' Add 'が見つかりませんでした。 – kez

0

、salistUsersはListことsould:

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

関連する問題