基本场景的高效类表类型,没有排序/持久化/搜索
本文关键字:排序 持久化 类型 搜索 高效 | 更新日期: 2023-09-27 18:06:56
我正在寻找一种高效的内存类型,它模仿混合类型数据(行/列)的表。我所说的高效是指以下场景的快速操作。内存是次要的。
主要场景有:
- 添加数据行
- 读取整列
- 遍历 行
超出作用域:
- 排序/订购
- 数据库持久化
- 随机访问单元格(即表(row=3,col=4))
我假设我可以做得比ADO类型(DataTable等)更好,因为它们解决了更广泛的场景?我可能错了
DataTable有很多特性,并且具有bulk。像AcceptChanges。
为了处理混合数据类型,创建了一个抽象类
public abstract class Field : INotifyPropertyChanged
包含
public abstract String DispValue { get; }
对于各种数据类型
class FieldBooleanSV : Field
class FieldStringSV : Field
class FieldInt32SV : Field
public class FieldInt16SV : DocField
{
Int16 fieldValue;
Int16 FieldValue { get { return fieldValue; }
set
{
if (value != fieldValue)
{
fieldValue = value;
NotifyPropertyChanged("DispValue");
NotifyPropertyChanged("FieldValue");
}
}
}
}
public override String DispValue
{
get
{ return fieldValue.ToString()); }
}
}
SV是单值,存在MV
FieldRow是一个具有属性
的类List<Field> Fields ....
总的集合是(行和列)是
ObservableCollection<FieldRow>
它是脆弱的,因为您需要确保每个FieldRow具有相同的字段集合。
工作量很大,但我需要控制Field。
如果你要走这条路,那么选择GridView而不是DataGrid(出于同样的原因——功率但开销)。
List<IEnumerable<T>>
表示T是一个变量,但它是奇异的。所有列都是相同的t