c# - 如何计算 JObject 中有多少个使用 LINQ 设置的字段?

标签 c# linq json.net

所以我需要计算 JObject 中有多少字段的值不为空或空格。我想出了下面的解决方案,效果很好。但是,我想知道是否有一种方法可以用 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

最佳答案

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

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

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

关于c# - 如何计算 JObject 中有多少个使用 LINQ 设置的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54667924/

相关文章:

c# - 一个 LINQ 表达式中的计数和非重复计数

c# - 如何检查KeySelector中的属性名称?

c# - 通过遍历数组创建 KeyValuePair 列表

c# - 如何将纯文本json数据转成字符串?

asp.net-mvc - asp.net mvc json 和 json.net 哪个更快?

c# - 如何在.net core 3.1中使用System.Text.Json获取对象内部对象的值

c# - 什么是 Python 的最小值/最大值的 C# 等价物

c# - 如何: Write a thread-safe method that may only be called once?

c# - 在 C# 中转义字符串文字中的双引号

c# - 如何添加对 System.Numerics.dll 的引用