因此,我需要计算JObject中有多少个字段的值不为null或空格。我想出了下面的解决方案,效果很好。但是,我想知道在LINQ中是否有一种方法可以使用精美的单缸纸呢?
JObject jObject = JObject.Parse(@"{
""Name"":""Nisse"" ,
""Address"":""Road1"",
""Zip"":"""",
}");
var counter = 0;
foreach (var x in jObject)
{
if (!string.IsNullOrWhiteSpace(x.Value.ToString()))
counter++;
}
//Counter is now 2
答案 0 :(得分:1)
在下面检查每个属性,并返回不为空的属性
jObject.Children().AsEnumerable().ToList()
.Count(t=> !string.IsNullOrWhiteSpace( t.Values().ToList()[0].ToString()))
注意:此代码基于所提供的对象结构。
答案 1 :(得分:0)
您可以使用int counter = jObject.Children().Count(c => string.IsNullOrEmpty(((JProperty)c).Value.ToString()));
,但自己看看它是否更具可读性。