如何计算JObject中使用LINQ设置的字段数?

问题描述 投票:1回答:2

所以我需要计算一个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
c# linq json.net
2个回答
1
投票

下面检查每个属性,并返回非空属性

jObject.Children().AsEnumerable().ToList()
.Count(t=> !string.IsNullOrWhiteSpace( t.Values().ToList()[0].ToString()))

注意:此代码基于提供的对象结构。


0
投票

你可以使用int counter = jObject.Children().Count(c => string.IsNullOrEmpty(((JProperty)c).Value.ToString()));,但如果它更具可读性,请亲自看看。

© www.soinside.com 2019 - 2024. All rights reserved.