Сортировка списка на отсутствие null

161
11 января 2018, 19:00

Доброй ночи. Как правильно реализовать проверку полей на null. Разбираюсь с vknet библиотекой и хочу получить список фотографии из альбома с наилучшим разрешением. При запросе там приходит ответ с доступными размерами фото. Но у каждой фотографии свой максимальный размер. Как правильно отсортировать входящие данные?

public static List<string> GetPhotoList(long ownerID, long albumID)
    {
        var photolist = new List<string>();
        var photos = vk.Photo.Get(new PhotoGetParams
        {
            OwnerId = ownerID,
            AlbumId = PhotoAlbumType.Id(albumID)
        });

        foreach (var photo in photos)
        {
          if (photo.Photo2560 != null)
                photolist.Add(photo.Photo2560.ToString());
            if (photo.Photo1280 != null)
                photolist.Add(photo.Photo1280.ToString());
        }
        return photolist;
    }

У меня сейчас такой вот "велосипед" но он работает не так как надо, валит в кучу повторяющиеся ссылки. Если у фотографии есть поле Photo2560 и Photo1280, то у меня в список обе ссылки вносятся. Мне хотелось бы получить отдельно фотографии в максимально доступном разрешении которое есть у конкретной фото.

Answer 1

Я так понял что ToString() не возвращает нужного результата и нужно брать значения из конкретных полей. Тогда подойдет такой вариант:

public static List<string> GetPhotoList(long ownerID, long albumID)
{
    var photos = vk.Photo.Get(new PhotoGetParams
    {
        OwnerId = ownerID,
        AlbumId = PhotoAlbumType.Id(albumID)
    });
    var photolist = photos.Where(x => x.Photo2560 != null || x.Photo1280 != null)
                          .Select(x=> x.Photo2560?.ToString() ?? x.Photo1280.ToString())
                          .ToList();
    return photolist;
}
Answer 2

LINQ

var highPhotoSize = in photo from photos
   where photo.Photo2560 != null || photo.Photo1280 != null
   select  photo.Photo2560 != null ? photo.Photo2560.ToString() : photo.Photo1280.ToString();

Результатом будет IEnumerable<string> со всеми ссылками.

READ ALSO
Необходима помощь по замыканиям.

Необходима помощь по замыканиям.

Прохожу учебник по JS на известном сайте, и вроде я понял замыкания, осозналНо

230
Форма отображается с задержкой

Форма отображается с задержкой

Код отвечающий за отображение формы

237
Notification API в Chrome

Notification API в Chrome

ЗдравствуйтеСоздал на сайте кнопку, по клику на которую должны появляться браузерные уведомления

226
Проверка наличия формы на странице

Проверка наличия формы на странице

Хочу написать функцию проверки наличия формы на страницеФорма любая

202