using System; using System.Collections.Generic; namespace Znyc.Cloudcar.Admin.Commons.Data { /// /// 查询结果数据表样式 /// public class MicroDataTable { /// /// 整个查询语句结果的总条数,而非本DataTable的条数 /// public int TotalCount { get; set; } /// /// 数据列名称 /// public List Columns { get; set; } = new(); /// /// 数据记录 /// public List Rows { get; set; } = new(); /// /// 主键 /// public MicroDataColumn[] PrimaryKey { get; set; } public MicroDataRow NewRow() { return new(Columns, new object[Columns.Count]); } } public class MicroDataColumn { public string ColumnName { get; set; } public Type ColumnType { get; set; } } public class MicroDataRow { private readonly object[] _ItemArray; public MicroDataRow(List columns, object[] itemArray) { Columns = columns; _ItemArray = itemArray; } public List Columns { get; } public object this[int index] { get => _ItemArray[index]; set => _ItemArray[index] = value; } public object this[string columnName] { get { int i = 0; foreach (MicroDataColumn column in Columns) { if (column.ColumnName == columnName) { break; } i++; } return _ItemArray[i]; } set { int i = 0; foreach (MicroDataColumn column in Columns) { if (column.ColumnName == columnName) { break; } i++; } _ItemArray[i] = value; } } } }