这是一款方便日常研发的扩展类库,通过简单的扩展让代码可读性更高更简洁,减少繁琐的类型转换,非空判断,异常处理流程。frame work和.net core都兼容哦。
目前库中包含部分基元类型的转换,基本满足日常开发。如果大家感兴趣或者有需要,欢迎提出宝贵的意见,或一起加入完善它,为我们的.Net生态奉献一点微薄之力。
-
基础类型
-
bool类型:
int intResult = true.ToInt32(); short shortResult = false.ToInt16(); ushort ushortResult = true.ToUInt16();
-
int类型:
bool convertBoolean = 123.ToBoolean(); ushort convertUshort = 123.ToUshort();
-
string类型:
//return 123 int strToInt = "123".ToInt32(); //如果待转换内容包含无效字符,则返回默认值0,示例中指定默认值2,所以返回2 int strToIntDefault = "123ABC".ToInt32(2); //return 223 ushort strToUshort = "223".ToUShort(); //如果待转换内容包含无效字符,则返回默认值0,示例中指定默认值3,所以返回3 ushort strToUshortDefault = "-1234".ToUShort(3); //return true bool strToBoolean = "223".ToBoolean(); //根据字符串"true"或"false"(不区分大小写)转换成bool类型,字符串"0"返回false,其它返回true。 bool strToBooleanDefault = "sdfv".ToBoolean();
-
DateTime:
DateTime date = DateTime.Now; //返回"2021-05-29 00:00:00" string strStartDate = date.FormatBeginDate(); //返回"2021-05-29 23:59:59" string strEndDate = date.FormatEndDate(); //返回 2021-05-29 00:00:00 DateTime startDate = date.ToBeginDate(); //返回 2021-05-29 23:59:59 DateTime endDate = date.ToEndDate(); //参数0=DateTime.Now 1=DateTime.MinValue 2=DateTime.MaxValue,此示例将返回DateTime.MaxValue DateTime convertDate = "123ABC".ToDateTime(2);
-
-
集合类:
取List中类型的某个字段组成一个新的List(虽然不知道这么改有啥意义,可能是因为我乐意)
class EntityModel { public string ID { get; set; } public string Name { get; set; } public int Count { get; set; } } //测试数据 List<EntityModel> lst = new List<EntityModel>(); for (int i = 0; i < 5; i++) { lst.Add(new EntityModel() { ID = i.ToString(), Name = $"name{i}", Count = i }); } //将lst中EntityModel的Count取出作为一个新的集合,等同于list.Select(l => l.Count).ToList(); List<int> filter = lst.ToList(l => l.Count);
-
ADO:
DataTable和DataRow的一些扩展,结果大家自己测试吧,这里就不码出来了
//生成测试数据
DataTable dt = new DataTable();
dt.Columns.Add("idx", typeof(int));
dt.Columns.Add("bolean", typeof(bool));
dt.Columns.Add("date", typeof(DateTime));
dt.Columns.Add("string", typeof(string));
DataRow dr = dt.NewRow();
dr["idx"] = 0;
dr["bolean"] = true;
dr["date"] = DateTime.Now;
dr["string"] = "asdasd";
//下面是示例
Console.WriteLine("--------DataRow extension-----------");
Console.WriteLine("数据源:");
foreach (DataColumn item in dt.Columns)
{
Console.WriteLine($"ColumnName :{item.ColumnName}\tDataType:{item.DataType.Name}\tValue:{dr[item]}");
}
Console.WriteLine("----------------------------------------------------------");
//dr.ToBoolean("bolean")
Console.WriteLine($"DataRow(bool) to boolean:\t{dr.ToBoolean("bolean")}");
//dr.ToBoolean("idx")
Console.WriteLine($"DataRow(int) to boolean:\t{dr.ToBoolean("idx")}");
//dr.ToBoolean("string")
Console.WriteLine($"DataRow(string) to boolean:\t{dr.ToBoolean("string")}");
//dr.ToDateTimeString("date")
Console.WriteLine($"DataRow(DateTime) to string:\t{dr.ToDateTimeString("date")}");
//dr.ToDateTime("date")
Console.WriteLine($"DataRow(DateTime) to DateTime:\t{dr.ToDateTime("date")}");
Console.WriteLine();
//测试数据
List<EntityModel> lst = new List<EntityModel>();
for (int i = 0; i < 5; i++)
{
lst.Add(new EntityModel() { ID = i.ToString(), Name = $"name{i}", Count = i });
}
//List转DataTable
DataTable dataTable = lst.ToDataTable();
//DataTable转List
List<EntityModel> testList = dataTable.ToList<EntityModel>();
搜索NuGet:EasyExtension
Git地址:https://github.com/cnwhm/Easy-extension
Gitee地址:https://gitee.com/cnwhm/Easy-extension
欢迎大家提出宝贵意见:cnwhm@qq.com