C#自定义集合类(二)
2021-03-08 07:27
标签:str 条件 adl 数据集 name read ram ble 技术 在System.Collections 命名空间下,常用的集合类中,这两个类不属于集合,而是作为自定义集合类的基类。 C#自定义集合类(二) 标签:str 条件 adl 数据集 name read ram ble 技术 原文地址:https://www.cnblogs.com/LuckyZLi/p/12808898.html
内置的集合并不能满足所有的数据集合处理,c#为用户自定义集合提供条件。这两个基类如下:
CollectionBase:为强类型集合提供abstract 基类
DictionaryBase:为键/值对的强类型集合提供abstract基类。
集合类有键值对的字典集合和一般集合,这两个基类一个作为非字典集合的基类,一个作为字典集合的基类using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Collections;
namespace ConsoleApplication1
{
public class Food
{
public String Name { get; set; }
public double Price { get; set; }
public Food(String name, double price)
{
this.Name = name;
this.Price = price;
}
}
public class FoodList : CollectionBase
{
//重写父类的Add方法
public virtual int Add(Food food)
{
return base.InnerList.Add(food);
}
public new void RemoveAt(int index)//父类中该方法不允许重写,需要使用new关键字屏蔽父类的RemoveAt方法
{
InnerList.RemoveAt(index);
}
public Food GetItem(int index)
{
return (Food)base.List[index];
}
}
class Program
{
static void Main()
{
Food food1 = new Food("苹果", 2.1);
Food food2 = new Food("香蕉", 3.1);
Food food3 = new Food("橘子", 4.1);
Food food4 = new Food("西红柿", 5.1);
FoodList foodlist = new FoodList();
foodlist.Add(food1);
foodlist.Add(food2);
foodlist.Add(food3);
foodlist.Add(food4);
for (int i = 0; i )
{
Console.WriteLine("名称:{0} 价格:{1}", foodlist.GetItem(i).Name, foodlist.GetItem(i).Price);
}
Console.WriteLine("删除index=1的元素后:");
foodlist.RemoveAt(1);
for (int i = 0; i )
{
Console.WriteLine("名称:{0} 价格:{1}", foodlist.GetItem(i).Name, foodlist.GetItem(i).Price);
}
Console.ReadLine();
}
}
}
上一篇:C#自定义集合类(一)
下一篇:FastApi学习