我有一个字符串数组,它具有我需要解析的可变数量的属性。我正在使用LINQ来解析这些数据,但不禁认为有一种更有效/更优雅的方法来实现这一点,而不是像我一样复制LINQ。 是否存在一种固有的方法来解释NULL值(因为该属性可能存在或可能不存在于数组中),而不是我在这里做的:
MyCollection.StringArray
.Where(e => e.name == "aproperty") != null
? MyCollection.StringArray.Where(e => e.name == "aproperty") FirstOrDefault().value
: string.Empty;
最终,我想要做的就是从属性中提取值,如果它存在于集合中,否则我需要一个空字符串(或null)。但是,我不希望抛出任何异常。
答案 0 :(得分:1)
如果您想要阻止在尝试访问空序列时获得的异常,可以使用DefaultIfEmpty
:
string value = MyCollection.StringArray
.Where(e => e.name == "aproperty")
.Select(e => e.value)
.DefaultIfEmpty(string.Empty)
.First();
首先选择value
属性是很重要的,即使它不存在也是安全的。使用DefaultIfEmpty
,您可以使用First
代替FirstOrDefault
。