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

时间:2013-04-02 12:55:45

标签: c# .net .net-4.0 datatable

我正在寻找一种有效的内存类型,它模仿混合类型数据表(行/列)。有效率我指的是以下场景的快速操作。记忆是次要问题。

主要方案是:

  • 添加数据行
  • 阅读整栏
  • 遍历行

超出范围:

  • 排序/顺序
  • 搜索
  • 持久化到数据库
  • 随机访问单元格(即table(row = 3,col = 4))

我假设我可以做得比ADO类型(DataTable等)更好,因为它们可以解决更广泛的场景?我错了。

1 个答案:

答案 0 :(得分:0)

DataTable具有很多功能并且具有批量功能。像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都具有相同的Fields集合。

这是很多工作,但我需要控制Field 如果您沿着这条路走下去,那就去DataGrid上的GridView(出于同样的原因 - 功耗但是开销)。

的问题
List<IEnumerable<T>>

T是变量,但它是单数。所有列都是相同的。