枚举类型增加了IsNullOrEmpty方法,判断枚举是否为null或者没有任何元素,并进行测试。
This commit is contained in:
parent
128f5f6025
commit
f5a44f9569
|
@ -120,6 +120,19 @@ namespace Falcon.SugarApi.Test
|
||||||
var initVal = arr.Reduce((a,b) => throw new Exception("空集合不可以调用缩减方法"),"abc");
|
var initVal = arr.Reduce((a,b) => throw new Exception("空集合不可以调用缩减方法"),"abc");
|
||||||
Assert.IsTrue(initVal=="abc","空集合返回初始值,并且不调用缩减方法。");
|
Assert.IsTrue(initVal=="abc","空集合返回初始值,并且不调用缩减方法。");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod("IsNullOrEmpty测试")]
|
||||||
|
public void IsNullOrEmptyTest() {
|
||||||
|
List<int> list = null;
|
||||||
|
Assert.IsTrue(list.IsNullOrEmpty());
|
||||||
|
Assert.IsFalse(list.IsNotNullOrEmpty());
|
||||||
|
list=new List<int>();
|
||||||
|
Assert.IsTrue(list.IsNullOrEmpty());
|
||||||
|
Assert.IsFalse(list.IsNotNullOrEmpty());
|
||||||
|
list.Add(1);
|
||||||
|
Assert.IsFalse(list.IsNullOrEmpty());
|
||||||
|
Assert.IsTrue(list.IsNotNullOrEmpty());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class ToDataTableTestModel
|
internal class ToDataTableTestModel
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
|
@ -41,7 +42,8 @@ namespace Falcon.SugarApi
|
||||||
var val = p.GetValue(i);
|
var val = p.GetValue(i);
|
||||||
try {
|
try {
|
||||||
row[p.Name]=val;
|
row[p.Name]=val;
|
||||||
} catch(Exception ex) {
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
throw new Exception($"值设置失败!{p.Name}:{val}",ex);
|
throw new Exception($"值设置失败!{p.Name}:{val}",ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,10 +120,29 @@ namespace Falcon.SugarApi
|
||||||
throw new ArgumentNullException(nameof(reduceFunc));
|
throw new ArgumentNullException(nameof(reduceFunc));
|
||||||
}
|
}
|
||||||
var result = initialValue;
|
var result = initialValue;
|
||||||
|
if(source.IsNull()) {
|
||||||
|
|
||||||
|
}
|
||||||
foreach(var i in source) {
|
foreach(var i in source) {
|
||||||
result=reduceFunc(result,i);
|
result=reduceFunc(result,i);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 返回枚举是否为null或者集合无元素
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">枚举的元素类型</typeparam>
|
||||||
|
/// <param name="values">枚举对象</param>
|
||||||
|
/// <returns>为null或者无元素返回True,否则False</returns>
|
||||||
|
public static bool IsNullOrEmpty<T>([AllowNull] this IEnumerable<T> values) => values==null||values.Count()==0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 返回枚举是否不为null或者集合无元素,结果是对IsNullOrEmpty去反。
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">枚举的元素类型</typeparam>
|
||||||
|
/// <param name="values">枚举对象</param>
|
||||||
|
/// <returns>枚举不为null或者无元素返回True,否则False</returns>
|
||||||
|
public static bool IsNotNullOrEmpty<T>([AllowNull] this IEnumerable<T> values) => !values.IsNullOrEmpty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user