/// <summary>
        /// 查重添加
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="t1">集合1</param>
        /// <param name="t2">集合2</param>
        /// <returns></returns>
        private static List <T> MinusExcept <T>(this List <T> t1, List <T> t2) where T : class, new()
        {
            IJsonProvider jsonProvider = new NewtonsoftJsonProvider();

            List <T>      resultList    = new CloneableClass().DeepClone(t1);
            List <string> resultStrList = new List <string>();

            if (resultStrList.Count == 0 && resultList.Count != 0)
            {
                t1.ForEach(item => { resultStrList.Add(jsonProvider.Serializer(item)); });
            }

            foreach (var item in t2)
            {
                var str = jsonProvider.Serializer(item);
                if (resultStrList.Contains(str))
                {
                    resultStrList.Remove(str);
                }
            }

            return(resultStrList.Select(x => jsonProvider.Deserialize <T>(x)).ToList());
        }