<PackageReference Include="Newtonsoft.Json" Version="6.0.7" />

CompositeExpression

using System; using System.Collections.Generic; namespace Newtonsoft.Json.Linq.JsonPath { internal class CompositeExpression : QueryExpression { public List<QueryExpression> Expressions { get; set; } public CompositeExpression() { Expressions = new List<QueryExpression>(); } public override bool IsMatch(JToken t) { switch (base.Operator) { case QueryOperator.And: foreach (QueryExpression expression in Expressions) { if (!expression.IsMatch(t)) return false; } return true; case QueryOperator.Or: foreach (QueryExpression expression2 in Expressions) { if (expression2.IsMatch(t)) return true; } return false; default: throw new ArgumentOutOfRangeException(); } } } }