Найдите объект в общем списке с помощью метода Find.
Вопрос
class Cache
{
int sizeOfCache;//no of RssFeedDocument
private List<RssFeedDocument> listOfRssFeedDocument = null;
}
я хочу найти объект в этом общем списке в классе на основе RssFeedDocument
собственность FeedId
.
Решение
Использование анонимного делегата:
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);
Другие советы
Предполагая, что вы можете использовать IEnumerable<T>
методы расширения, я думаю, что самый простой способ - использовать Where
:
listOfRssFeedDocument.Where(doc => doc.FeedId == someId);
List<RssFeedDocument> filteredList = listOfRssFeedDocument.Find(delegate(RssFeedDocument d) { return d.FeedId = x; });
Ссылка: Список<T>
.Находить
Если вы не можете использовать LINQ, вы можете использовать что-то вроде:
RssFeedDocument fd = ListName.Find(delegate(RssFeedDocument doc) { return doc.FeedID == someVariable; });
Не связан с StackOverflow