您的位置:首页 > 编程语言 > C#

c#自定义集合类

2016-07-21 11:22 309 查看
在System.Collections 命名空间下,常用的集合类中,这两个类不属于集合,而是作为自定义集合类的基类。

内置的集合并不能满足所有的数据集合处理,c#为用户自定义集合提供条件。这两个基类如下:

CollectionBase:为强类型集合提供abstract 基类

DictionaryBase:为键/值对的强类型集合提供abstract基类。

集合类有键值对的字典集合和一般集合,这两个基类一个作为非字典集合的基类,一个作为字典集合的基类。

下面以集合CollectionBase作为基类:

class Program
{
static void Main(string[] args)
{
Food food1 = new Food("苹果", 2.0);
Food food2 = new Food("香蕉", 3.0);
Food food3 = new Food("橘子", 4.0);
Food food4 = new Food("西红柿", 5.0);
FoodList foodlist = new FoodList();
foodlist.Add(food1);
foodlist.Add(food2);
foodlist.Add(food3);
foodlist.Add(food4);
for (int i = 0; i < foodlist.Count; i++)
{
Console.WriteLine("名称:{0} 价格:{1}",foodlist.GetItem(i).fname,foodlist.GetItem(i).fprice);

}
Console.WriteLine("删除index=1的元素后:");
foodlist.RemoveAt(1);
for (int i = 0; i < foodlist.Count; i++)
{
Console.WriteLine("名称:{0} 价格:{1}", foodlist.GetItem(i).fname, foodlist.GetItem(i).fprice);

}
}
}
public class Food
{
public string fname;
public double fprice;
public Food()
{
}
public Food(string name, double price)
{
fname = name;
fprice = price;
}
public string fnames
{
get { return fname;}
set { fname = value; }

}

public double fprices
{
get { return fprice; }
set{fprice=value;}
}
}
public class FoodList : CollectionBase
{
public virtual int Add(Food food)//重写父类的添加方法
{
return InnerList.Add(food);
}
public new void RemoveAt(int index)//父类中该方法不允许重写,使用new关键字重写
{
InnerList.RemoveAt(index);
}
public  Food GetItem(int index) //根据索引获得类对象
{
return (Food)List[index];
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  自定义 集合 c#