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

JEnumerable<T>

public struct JEnumerable<T> : IJEnumerable<T>, IEnumerable<T>, IEnumerable, IEquatable<JEnumerable<T>> where T : JToken
Represents a collection of JToken objects.
using Newtonsoft.Json.Utilities; using Newtonsoft.Json.Utilities.LinqBridge; using System; using System.Collections; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace Newtonsoft.Json.Linq { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public readonly struct JEnumerable<[System.Runtime.CompilerServices.Nullable(0)] T> : IJEnumerable<T>, IEnumerable<T>, IEnumerable, IEquatable<JEnumerable<T>> where T : JToken { [System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] public static readonly JEnumerable<T> Empty = new JEnumerable<T>(Enumerable.Empty<T>()); private readonly IEnumerable<T> _enumerable; public IJEnumerable<JToken> this[object key] { get { if (_enumerable == null) return JEnumerable<JToken>.Empty; return new JEnumerable<JToken>(Extensions.Values<T, JToken>(_enumerable, key)); } } public JEnumerable(IEnumerable<T> enumerable) { ValidationUtils.ArgumentNotNull(enumerable, "enumerable"); _enumerable = enumerable; } public IEnumerator<T> GetEnumerator() { return ((IEnumerable<T>)(_enumerable ?? ((object)Empty))).GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } public bool Equals([System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] JEnumerable<T> other) { return object.Equals(_enumerable, other._enumerable); } [System.Runtime.CompilerServices.NullableContext(2)] public override bool Equals(object obj) { if (obj is JEnumerable<T>) { JEnumerable<T> other = (JEnumerable<T>)obj; return Equals(other); } return false; } public override int GetHashCode() { if (_enumerable == null) return 0; return _enumerable.GetHashCode(); } } }