2009-12-23 1 views
0

У меня есть IEnumerable следующего объекта:Как я могу использовать .Contains(), чтобы получить свойство коллекции, используя LINQ to Objects?

public class Recipient 
{ 
    public int UserID { get; set; } 
    public string Name { get; set; } 
} 

Итак, у меня есть IEnumerable<Recipient> Получатели, и я хотел бы сделать .Contains() на реципиентов. Кроме того, я хотел бы сделать .contains() для каждого получателя UserID, чтобы узнать, содержат ли мои получатели определенный идентификатор пользователя.

Если бы я только имел IEnumerable<Int> Получателей, было бы легко сделать Recipients.Contains(5);

Но, потому что я пытаюсь получить свойство коллекции, как я использую Содержит в этом случае?

ответ

2
Recipients.Any(r => r.UserID == 5) 

В качестве альтернативы, вы можете сопоставить коллекцию в коллекцию UserID значений и выполнить Contains там:

Recipients.Select(r => r.UserID).Contains(5)