Как я могу сделать что-то вроде IList <T>.Contains (OtherObjectType)? - PullRequest
5 голосов
/ 01 июня 2010

У меня есть следующие классы:

Клиент

ClientCacheMedia (содержит Client, Media и некоторые другие параметры, поэтому он является связующим звеном между носителем и клиентом)

Media

, где клиент содержит IList. Теперь то, что я хотел бы сделать, это иметь способ проверить, содержит ли этот список определенные носители

так: Client.ClientCacheMedia.Contains (MyMedia)

есть ли способ разрешить IList принимать медиа в качестве объекта для сопоставления? (Я могу легко переопределить свойство Equals на ClientCacheMedia, чтобы проверить, является ли переданный носитель тем, который содержит ClientCacheMedia.Media, это просто Ilist, который не будет принимать другие объекты в методе Contains.

Ответы [ 2 ]

7 голосов
/ 01 июня 2010

В этом случае можно использовать метод расширения IEnumerable.Any. Это может быть что-то вроде этого:

Client.ClientCacheMedia.Any(cm => cm.Media == myMedia);
0 голосов
/ 07 ноября 2016

Вы тоже можете сделать это так:

boll temp = (Client.ClientCacheMedia).ToList().Contains(MyMedia);
...