繁体   English   中英

从对象列表中获取所有对象,其中对象属性之一在C#中为null或为空

[英]Get all objects from a list of objects where one of the object properties is null or empty in c#

我正在使用.NET 4.7.2编写ac#控制台应用程序。 我有一个对象列表,我想从该列表中获取所有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时,结果是

错误,正确,正确,错误

因此它正在标识PackageDependency == ""的对象,但是我需要让代码填充一个List<string> ,其中包含PackageDependency == ""任何对象的PackageName ,因此上述示例的输出应为具有值的List<string>

包装2

包装3

如果有人能指出正确的方向,我将不胜感激。

您需要使用Where<T>而不是Select<T>

所以它应该看起来像:

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

另外,我会(如果可以的话)使用string.IsNullOrWhiteSpace来检查Package.Dependency的值。

编辑:看起来有人在我之前发表了相同的答案作为评论。 并不是要偷雷。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM