Найти объект в общем списке с помощью метода Find - PullRequest
3 голосов
/ 12 мая 2009
class Cache
{
    int sizeOfCache;//no of RssFeedDocument 
    private List<RssFeedDocument> listOfRssFeedDocument = null;
}

Я хочу найти объект в этом универсальном списке в классе на основе свойства RssFeedDocument FeedId.

Ответы [ 4 ]

8 голосов
/ 12 мая 2009

Использование анонимного делегата:

Guid feedID = ...;
RssFeedDocument document = listOfRssFeedDocuments.Find(
    delegate(RssFeedDocument rfd)
    { return rfd.FeedId == feedID; });

То же самое, но с лямбдами C # 3.0:

Guid feedID = ...;
RssFeedDocument document = 
    listOfRssFeedDocuments.Find(rfd => rfd.FeedId == feedID);
2 голосов
/ 12 мая 2009

Предполагая, что вы можете использовать методы расширения IEnumerable<T>, я думаю, что самый простой способ - это использовать Where:

listOfRssFeedDocument.Where(doc => doc.FeedId == someId);
0 голосов
/ 12 мая 2009

Если вы не можете использовать LINQ, вы можете использовать что-то вроде:

RssFeedDocument fd = ListName.Find(delegate(RssFeedDocument doc) { return doc.FeedID == someVariable; });
0 голосов
/ 12 мая 2009
List<RssFeedDocument> filteredList = listOfRssFeedDocument.Find(delegate(RssFeedDocument d) { return d.FeedId = x; });

Ссылка: Список <T>. Найти

...