首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本场景中高效的类表类型,没有排序/持久化/搜索。

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

Stack Overflow用户
提问于 2013-04-02 12:55:44
回答 1查看 104关注 0票数 1

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

主要的设想是:

  • 添加数据行
  • 读整栏
  • 迭代行

超出范围:

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

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

EN

回答 1

Stack Overflow用户

发布于 2013-04-02 16:19:04

DataTable有许多特性,并且具有大量功能。就像AcceptChanges。

处理创建的抽象类的混合数据类型

代码语言:javascript
复制
public abstract class Field : INotifyPropertyChanged 

它包括

代码语言:javascript
复制
public abstract String DispValue { get; }

然后,对于各种数据类型

代码语言:javascript
复制
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是一个具有属性的类。

代码语言:javascript
复制
List<Field> Fields ....

总集合是(行和列)是

代码语言:javascript
复制
ObservableCollection<FieldRow>

它是脆弱的,因为您需要确保每个FieldRow都有相同的字段集合。

这是很多工作,但我需要控制现场。

如果您要走这条路,那么在GridView上使用DataGrid (出于同样的原因--电源,但是开销)。

问题在于

代码语言:javascript
复制
List<IEnumerable<T>>

T是一个变量,但它是奇异的。所有列都是相同的T。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15764687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档