[英]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.