2016-03-07 25 views
4

我有一個方法,如果UserId在數組中,應該返回用戶列表。 UserIds數組傳遞給方法。linq where子句當id在一個數組中

我不知道如何編寫..其中userid數組?

下面的「in ids []」顯然是不正確的。

public List<User> GetUsers(int[] ids) 
    { 
     return Users.Values.Where(u => u.UserID in ids[]).ToList(); 
    } 

任何想法如何糾正?

感謝,

+1

打字回覆看到某人的煩惱已經發布了同樣的事情和一些人已經投票..所以我刪除它 – BugFinder

+0

哈哈耶。我已經提高了你的評論! – thegunner

+2

@BugFinder這是一個老問題,它有自己的名字([西部最快槍](http://meta.stackexchange.com/q/9731/175984))。 – dasblinkenlight

回答

15

你可以嘗試這樣的事情:

public List<User> GetUsers(int[] ids) 
{ 
    return Users.Values.Where(u => ids.Contains(u.UserID)).ToList(); 
} 
3

Alternativly到Quentins回答使用:

public List<User> GetUsers(int[] ids) 
{ 
    return Users.Values.Where(u => ids.Any(x => x == u.UserID)).ToList(); 
}