2009-05-12 4 views

ответ

8

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

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

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

listOfRssFeedDocument.Where(doc => doc.FeedId == someId); 
0
List<RssFeedDocument> filteredList = listOfRssFeedDocument.Find(delegate(RssFeedDocument d) { return d.FeedId = x; }); 

Ссылка: List<T>.Find

0

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

RssFeedDocument fd = ListName.Find(delegate(RssFeedDocument doc) { return doc.FeedID == someVariable; });