//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using System; using System.Collections.Generic; namespace GameFramework.DataTable { /// /// 数据表接口。 /// /// 数据表行的类型。 public interface IDataTable : IEnumerable where T : IDataRow { /// /// 获取数据表名称。 /// string Name { get; } /// /// 获取数据表完整名称。 /// string FullName { get; } /// /// 获取数据表行的类型。 /// Type Type { get; } /// /// 获取数据表行数。 /// int Count { get; } /// /// 获取数据表行。 /// /// 数据表行的编号。 /// 数据表行。 T this[int id] { get; } /// /// 获取编号最小的数据表行。 /// T MinIdDataRow { get; } /// /// 获取编号最大的数据表行。 /// T MaxIdDataRow { get; } /// /// 检查是否存在数据表行。 /// /// 数据表行的编号。 /// 是否存在数据表行。 bool HasDataRow(int id); /// /// 检查是否存在数据表行。 /// /// 要检查的条件。 /// 是否存在数据表行。 bool HasDataRow(Predicate condition); /// /// 获取数据表行。 /// /// 数据表行的编号。 /// 数据表行。 T GetDataRow(int id); /// /// 获取符合条件的数据表行。 /// /// 要检查的条件。 /// 符合条件的数据表行。 /// 当存在多个符合条件的数据表行时,仅返回第一个符合条件的数据表行。 T GetDataRow(Predicate condition); /// /// 获取符合条件的数据表行。 /// /// 要检查的条件。 /// 符合条件的数据表行。 T[] GetDataRows(Predicate condition); /// /// 获取符合条件的数据表行。 /// /// 要检查的条件。 /// 符合条件的数据表行。 void GetDataRows(Predicate condition, List results); /// /// 获取排序后的数据表行。 /// /// 要排序的条件。 /// 排序后的数据表行。 T[] GetDataRows(Comparison comparison); /// /// 获取排序后的数据表行。 /// /// 要排序的条件。 /// 排序后的数据表行。 void GetDataRows(Comparison comparison, List results); /// /// 获取排序后的符合条件的数据表行。 /// /// 要检查的条件。 /// 要排序的条件。 /// 排序后的符合条件的数据表行。 T[] GetDataRows(Predicate condition, Comparison comparison); /// /// 获取排序后的符合条件的数据表行。 /// /// 要检查的条件。 /// 要排序的条件。 /// 排序后的符合条件的数据表行。 void GetDataRows(Predicate condition, Comparison comparison, List results); /// /// 获取所有数据表行。 /// /// 所有数据表行。 T[] GetAllDataRows(); /// /// 获取所有数据表行。 /// /// 所有数据表行。 void GetAllDataRows(List results); /// /// 增加数据表行。 /// /// 要解析的数据表行字符串。 /// 用户自定义数据。 /// 是否增加数据表行成功。 bool AddDataRow(string dataRowString, object userData); /// /// 增加数据表行。 /// /// 要解析的数据表行二进制流。 /// 数据表行二进制流的起始位置。 /// 数据表行二进制流的长度。 /// 用户自定义数据。 /// 是否增加数据表行成功。 bool AddDataRow(byte[] dataRowBytes, int startIndex, int length, object userData); /// /// 移除指定数据表行。 /// /// 要移除数据表行的编号。 /// 是否移除数据表行成功。 bool RemoveDataRow(int id); /// /// 清空所有数据表行。 /// void RemoveAllDataRows(); } }