src/DotNetCommon.Core/Extensions/JsonExtensions.cs
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json.Nodes;
namespace DotNetCommon.Extensions
{
/// <summary>
/// JsonObject、JsonArray 扩展类
/// </summary>
public static class JsonExtensions
{
/// <summary>
/// 当前集合(<c>jsonArray</c>)是否含有<c>value</c>
/// <list type="bullet">
/// <item>当<c>value</c>为null时,直接返回true,否则下一步;</item>
/// <item>当<c>jsonArray</c>为空时,直接返回false,否则下一步;</item>
/// <item>返回<c>jsonArray</c>是否含有<c>value</c>;</item>
/// </list>
/// </summary>
/// <remarks>比较前会将<c>JsonArray</c>反序列化为List<T></remarks>
public static bool ContainsObject<T>(this JsonArray jsonArray, T value, IEqualityComparer<T> equalityComparer = null)
{
if (value is null) return true;
if (jsonArray == null || jsonArray.Count == 0) return false;
var seq = jsonArray.ToJsonString().ToObject<List<T>>();
return seq.Contains(value, equalityComparer);
}
/// <summary>
/// 当前集合(<c>jsonArray</c>)是否含有<c>values</c>中的任何一个
/// <list type="bullet">
/// <item>当<c>values</c>为空时,直接返回true,否则下一步;</item>
/// <item>当<c>jsonArray</c>为空时,直接返回false,否则下一步;</item>
/// <item>返回<c>jsonArray</c>和<c>values</c>是否有交叉(Intersect);</item>
/// </list>
/// </summary>
/// <remarks>比较前会将<c>JsonArray</c>反序列化为List<T></remarks>
public static bool ContainsObjectAny<T>(this JsonArray jsonArray, IEnumerable<T> objects, IEqualityComparer<T> equalityComparer = null)
{
if (objects.IsNullOrEmpty()) return true;
if (jsonArray == null || jsonArray.Count == 0) return false;
var seq = jsonArray.ToJsonString().ToObject<List<T>>();
return seq.ContainsAny(objects, equalityComparer);
}
/// <summary>
/// 当前集合(<c>jsonArray</c>)是否包含<c>values</c>中的全部
/// <list type="bullet">
/// <item>当<c>values</c>为空时,直接返回true,否则下一步;</item>
/// <item>当<c>jsonArray</c>为空时,直接返回false,否则下一步;</item>
/// <item>返回<c>values</c>减去<c>jsonArray</c>后是否为空(Except);</item>
/// </list>
/// </summary>
/// <remarks>比较前会将<c>JsonArray</c>反序列化为List<T></remarks>
public static bool ContainsObjectAll<T>(this JsonArray jsonArray, IEnumerable<T> objects, IEqualityComparer<T> equalityComparer = null)
{
if (objects.IsNullOrEmpty()) return true;
if (jsonArray == null || jsonArray.Count == 0) return false;
var seq = jsonArray.ToJsonString().ToObject<List<T>>();
后面还有 92 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
