基本场景的高效类表类型,没有排序/持久化/搜索

本文关键字:排序 持久化 类型 搜索 高效 | 更新日期: 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