增加In方法,判断对象是否在目标数组中
This commit is contained in:
parent
633f20e46a
commit
224ab2d621
|
@ -125,6 +125,26 @@ namespace Falcon.SugarApi.Test
|
|||
Assert.IsTrue(fullCount > nFullCount);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 测试In方法
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public void ObjectInTest() {
|
||||
string obj = "abc";
|
||||
Assert.IsTrue(obj.In("eee","abc","1231"));
|
||||
Assert.IsFalse(obj.In("2313","eeee"));
|
||||
|
||||
var o1 = new object();
|
||||
Assert.IsTrue(o1.In(o1));
|
||||
Assert.IsFalse(o1.In( new object(),new object()));
|
||||
|
||||
var o2 = new ObjWithComparable { val = 1 };
|
||||
var o22 = new ObjWithComparable { val = 1 };
|
||||
var o23 = new ObjWithComparable { val = 1 };
|
||||
Assert.IsTrue(o2.In(o22,o23));
|
||||
}
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 扩展属性测试类
|
||||
|
@ -157,4 +177,18 @@ namespace Falcon.SugarApi.Test
|
|||
{
|
||||
public string ItemA { get; set; } = "itema";
|
||||
}
|
||||
|
||||
public class ObjWithComparable
|
||||
{
|
||||
public int val { get; set; }
|
||||
|
||||
public int CompareTo(ObjWithComparable? other) {
|
||||
return this.val - other.val;
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj) {
|
||||
var c = obj as ObjWithComparable;
|
||||
return c == null ? false : c.val == this.val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RabbitMqTest", "RabbitMqTes
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharpTest", "CSharpTest\CSharpTest.csproj", "{FA6A7A47-7EEE-4264-9C89-C2E717B1CB78}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NugetPluginTest", "NugetPluginTest\NugetPluginTest.csproj", "{3570FDA6-C408-4A61-852E-3B4F1DCAD1AD}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NugetPluginTest", "NugetPluginTest\NugetPluginTest.csproj", "{3570FDA6-C408-4A61-852E-3B4F1DCAD1AD}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
|
|
@ -208,6 +208,26 @@ namespace Falcon.SugarApi
|
|||
targetBuilder?.Invoke(obj);
|
||||
return obj as T;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 判断对象是否在目标对象数组中。如果对象实现IComparable,则使用IComparable比较对象,否则使用Equals方法比较对象
|
||||
/// </summary>
|
||||
/// <typeparam name="T">对象类型</typeparam>
|
||||
/// <param name="obj">当前对象</param>
|
||||
/// <param name="values">目标对象数组</param>
|
||||
/// <returns>在数组中返回True,否则False</returns>
|
||||
public static bool In<T>(this T obj,params T[] values) {
|
||||
if(obj == null) {
|
||||
return values.Any(a => a == null);
|
||||
}
|
||||
foreach(var i in values) {
|
||||
if(obj.Equals(i)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
Loading…
Reference in New Issue
Block a user