Admin Core

ZhonTai.Common.Extensions 扩展方法库

提供针对常用数据类型的扩展方法封装,涵盖日期时间、列表、枚举及类型转换等场景。

提供针对常用数据类型的扩展方法封装,涵盖日期时间、列表、枚举及类型转换等场景。


命名空间

1
using ZhonTai.Common.Extensions;

DateTimeExtension - 日期时间扩展

应用场景

  • 时间戳与 DateTime 互转
  • 获取中文星期名称

方法列表

方法 说明
ToTimestamp() DateTime 转秒级时间戳
ToTimestamp(milliseconds: true) DateTime 转毫秒级时间戳
GetWeekName() 获取中文星期名称

使用示例

1
2
3
4
5
6
7
8
9
10
11
// DateTime 转秒级时间戳
var timestamp = DateTime.Now.ToTimestamp();
// 结果: 1700000000

// DateTime 转毫秒级时间戳
var timestampMs = DateTime.Now.ToTimestamp(milliseconds: true);
// 结果: 1700000000000

// 获取中文星期
var week = DateTime.Now.GetWeekName();
// 结果: "周一"

ListExtension - 列表扩展

应用场景

  • 平级数据转树形结构(菜单、组织架构等层级数据)
  • 树形结构转平级列表
  • 列表深度克隆

方法列表

方法 说明
ToTree(...) 平级列表转树形结构
ToPlainList() 树形结构转平级列表
Clone() 列表深度克隆

使用示例

1
2
3
4
5
6
7
8
9
10
11
12
// 平级列表转树形结构
var tree = flatList.ToTree(
rootWhere: (parent, child) => parent == null && child.ParentId == 0,
childsWhere: (parent, child) => parent.Id == child.ParentId,
addChilds: (parent, childs) => parent.Children = childs.ToList()
);

// 树形结构转平级列表
var flatList = tree.ToPlainList(x => x.Children);

// 深度克隆列表
var cloned = list.Clone();

EnumExtension - 枚举扩展

应用场景

  • 获取枚举的 [Description] 特性值
  • 枚举转下拉选项列表

方法列表

方法 说明
ToDescription() 获取枚举描述(特性值)
ToNameWithDescription() 获取枚举名称+描述
ToInt64() 枚举转数值
ToList() 枚举转下拉列表
EnumExtension.ToList<T>() 泛型方式转下拉列表(静态调用)

使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 定义枚举
public enum Status
{
[Description("启用")]
Enabled = 1,

[Description("禁用")]
Disabled = 2
}

// 获取枚举描述
var desc = Status.Enabled.ToDescription();
// 结果: "启用"

// 获取枚举名称+描述
var nameDesc = Status.Enabled.ToNameWithDescription();
// 结果: "Enabled(启用)"

// 枚举转数值
var value = Status.Enabled.ToInt64();
// 结果: 1

// 枚举转下拉列表
var list = Status.Enabled.ToList();
// 结果: [{"Label": "启用", "Value": 1}, {"Label": "禁用", "Value": 2}]

// 泛型方式(无需实例)
var list2 = EnumExtension.ToList<Status>();

UtilConvertExtension - 类型转换扩展

应用场景

  • object 安全转换为各种类型
  • 数据库字段值转换
  • 字节数组与 16 进制/Base64 互转

方法列表

方法 说明
ToInt() 转 Int32
ToLong() 转 Int64
ToFloat() 转 Float
ToDouble() 转 Double(支持保留小数位)
ToDecimal() 转 Decimal
ToBool() 转 Boolean
ToDateTime() 转 DateTime
ToMoney() 转货币类型(带默认值)
ToString(defaultValue) 转字符串(带默认值)
ToHex() byte[] 转 16 进制字符串
ToBase64() byte[] 转 Base64
HexToBytes() 16 进制字符串转 byte[]
ToDateTime() 时间戳转 DateTime

使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
object value = "123";

// 基础类型转换
var i = value.ToInt(); // 123
var l = value.ToLong(); // 123
var f = value.ToFloat(); // 123.0
var d = value.ToDouble(); // 123.0
var dec = value.ToDecimal(); // 123
var b = value.ToBool(); // false

// 带默认值的转换
var money = "abc".ToMoney(0.0); // 0.0
var str = null.ToString("默认值"); // "默认值"

// 保留小数位
var d2 = "3.14159".ToDouble(2); // 3.14

// byte[] 转换
var bytes = new byte[] { 0x12, 0x34 };
var hex = bytes.ToHex(); // "1234"(默认小写)
var hex2 = bytes.ToHex(false); // "1234"(大写)
var b64 = bytes.ToBase64(); // "EjQ="

// 16进制字符串转 byte[]
var bytes2 = "1234".HexToBytes();

// 时间戳转 DateTime
var dt = 1700000000L.ToDateTime();

方法汇总表

扩展类型 核心方法
DateTime ToTimestamp, GetWeekName
List ToTree, ToPlainList, Clone
Enum ToDescription, ToNameWithDescription, ToList
Convert ToInt, ToLong, ToDouble, ToDecimal, ToBool, ToDateTime, ToHex, ToBase64, HexToBytes

#中台/公共帮助类 .NET/C#