实现DataSet.Tables[x]这一类的容器类一般的做法是什么样的?

doocoo 2006-11-02 08:40:13
比如我有这么一个设计:
帐户类 Account
帐户集合类 Accounts
现在要把它做成就跟Tables-Table这样的类似的功能,比如:
foreach(Account ac in AccountsInstance){...}
Account ac=AccountsInstance[x(int)]; 用index得到某一个子对象
Account ac=AccountsInstance[x(string)]; 用key得到某一个子对象
……
像这样的功能,一般用什么样的方式来做到?在Accounts里面new一个ArrayList用呢还是Accounts:ArrayList呢?
或者用ICollection,IList?
...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
doocoo 2006-11-02
  • 打赏
  • 举报
回复
OK, problem solved!
thanks a lot
ralpha08 2006-11-02
  • 打赏
  • 举报
回复
可以定义一个Arraylist啊
只管往Arraylist里添加,
取出来再做转型

class Accounts
{
ArrayList list = new ArrayList;
public Account this[int i]
{
get
{
return (Account)list[i];
}
set
{
if(i>list.Count-1)
throw new IndexOutOfRangeException();
list[i] = value;
}

}
doocoo 2006-11-02
  • 打赏
  • 举报
回复
各位老大,能不能说得详细一点啊
ralpha08 2006-11-02
  • 打赏
  • 举报
回复
索引器
doocoo 2006-11-02
  • 打赏
  • 举报
回复
可是如果用索引器的话,如何实现可变的length呢?
比如如果一个Accounts可能包含n个Account,那么我声明集合的数量时应该怎么办呢?
class Accounts
{
private Account[] acc = new Account[x];//这里,我该声明多少呢?如果用一个很大的数字的话,内存会不会浪费很多?而设的小了的话,用户需要超过x个Account的时候,岂不是就被限制住了?
public Account this[int i]
{
get
{
return acc[i];
}
set
{
acc[i] = value;
}

}
Erison 2006-11-02
  • 打赏
  • 举报
回复
索引器
doocoo 2006-11-02
  • 打赏
  • 举报
回复
又看了一下,好像用索引器就可以了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧