Получить все объекты из списка объектов, в которых одно из свойств объекта является нулевым или пустым в c # - PullRequest
0 голосов
/ 05 февраля 2019

Я пишу консольное приложение ac #, используя .NET 4.7.2.У меня есть список объектов, и я хочу получить список всех строк PackageName из этого списка, где PackageDependency == "".Я видел несколько сообщений SO, в которых он получает один объект из списка на основе таких критериев, как этот, используя .FirstOrDefault, но мне нужно получить все объекты, а не только один.

Вот мой класс объектов:

public class PackageDetails
{
    public string PackageName { get; set; }
    public string PackageDependency { get; set; }
}

Создание списка и его загрузка:

List<Objects.PackageDetails> Example = new List<Objects.PackageDetails>()
            {
                new Objects.PackageDetails {PackageName = "package1", PackageDependency = "dependency 1" }
                , new Objects.PackageDetails {PackageName = "package2" }
                , new Objects.PackageDetails {PackageName = "package3"}
                , new Objects.PackageDetails {PackageName = "package4", PackageDependency = "dependency 2" }

            };

Тогда вот, где мне нужно некоторое руководство.Вот что я смог придумать до сих пор:

var a = Example.Select(x => x.PackageDependency == "");

, но когда я наведите курсор мыши на a, это даст мне результаты

False, True, True, False

, поэтому он идентифицирует объекты, где PackageDependency == "", но мне нужно, чтобы код заполнял List<string>, который содержит PackageName для любого объекта, где PackageDependency == "", таквывод из приведенного выше примера должен быть List<string> со значениями

package2

и

package3

Если бы кто-то мог указать мне правильное направление, я был бы очень признателен.

1 Ответ

0 голосов
/ 05 февраля 2019

Вам нужно использовать Where<T> вместо Select<T>

Так что это должно выглядеть так:

var a = Example.Where( x => x.PackageDependency == "" )

Кроме того, я бы (если вы можете) использовать string.IsNullOrWhiteSpace дляпроверьте значение Package.Dependency

Изменить: Похоже, кто-то опубликовал этот же ответ в качестве комментария, прежде чем я сделал.Не хотел красть гром.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...