Фильтрация коллекции в C # - PullRequest
0 голосов
/ 30 мая 2018

В настоящее время я использую SyndicationFeed для извлечения изображения из элемента приобретения.

Каждый элемент имеет коллекцию ссылок.Для каждой коллекции ссылок я хочу сделать следующее:

  1. проверить первый экземпляр, где link.MediaType содержит изображение,
  2. , если оно есть, вернуть link.Uri, иначе вернуть пустоеstring

Я хотел сделать что-то вроде этого:

var imageLink = image.Links.First(where( s.mediaType contains "image" && s.mediaType != null))
if (imageLink){
  string imageUrl = imageLink.Uri
}

В настоящее время у меня много утверждений if.Мне интересно, есть ли более чистый способ сделать это.

1 Ответ

0 голосов
/ 30 мая 2018

Что-то вроде этого - то, что вы хотите:

using System.Linq;

string GetUri(SyndicationFeed image)
{
    return image.Links.Where(link => link != null && link.Contains("image")).FirstOrDefault() ?? "";
}
...