这篇是对象与集合操练,物件的创建,集合的一些基本功能,如添加,编辑,删除等功能。

对象,即是网店的商品物件,Insus.NET只为其添加2个属性,物件的ID的Key和名称ItemName以及2个构造函数,最后一个方法是重写ToString()方法。

 class Item
{
private int _key;
public int Key
{
get
{
return _key;
}
set
{
_key = value;
}
} private string _ItemName; public string ItemName
{
get { return _ItemName; }
set { _ItemName = value; }
} public Item()
{ } public Item(int key, string itemName)
{
this._key = key;
this._ItemName = itemName;
} public override string ToString()
{
return string.Format("ID: {0}; Name: {1}。",_key,_ItemName);
}
}

Source Code

有了物件,你可以创建你的购物车Shopping Cart:

 class ShoppingCart
{
private SortedList<int, Item> _sl = new SortedList<int, Item>(); public void Add(Item item) //物件添加
{
this._sl.Add(item.Key, item);
} public void Edit(Item item) //编辑物件
{
if (this._sl.ContainsKey(item.Key))
{
this._sl[item.Key] = item;
}
} public void Delete(Item item) //删除物件
{
this._sl.Remove(item.Key);
} public Item this[int key] //索引器
{
get
{
if (!this._sl.ContainsKey(key))
{
return null;
}
else
{
return this._sl[key];
}
}
} public virtual int Count //集合中物件数量
{
get
{
return this._sl.Count;
}
} public virtual IEnumerable<Item> Items //获取所有物件
{
get
{
return this._sl.Values;
}
}
}

Source Code

下面是在控制台测试上面写好的集合购物车:

 class Program
{
static void Main(string[] args)
{
ShoppingCart sc = new ShoppingCart(); var item1 = new Collections.Item();
item1.Key = ;
item1.ItemName = "Huawei V8";
sc.Add(item1); var item2 = new Collections.Item();
item2.Key = ;
item2.ItemName = "Huawei V9";
sc.Add(item2); var item3 = new Collections.Item();
item3.Key = ;
item3.ItemName = "Huawei V10";
sc.Add(item3); Console.WriteLine("使用索引器,输出对象:");
Console.WriteLine(sc[].ToString()); Console.WriteLine("集合中对象数量:");
Console.WriteLine(sc.Count); Console.WriteLine("列出所有对象:");
sc.Items.ForEach(delegate (Collections.Item item)
{
Console.WriteLine(item.ToString());
});
}
}

Source Code

按Ctrl + F5输出结果:

最后演示编辑Edit和删除Delete的功能:

var item4 = new Collections.Item();
item4.Key = ;
item4.ItemName = "Huawei Mate10";
sc.Edit(item4); Console.WriteLine("编辑后列出所有对象:");
sc.Items.ForEach(delegate (Collections.Item item)
{
Console.WriteLine(item.ToString());
}); var item5 = new Collections.Item();
item5.Key = ;
sc.Delete(item5); Console.WriteLine("删除后列出所有对象:");
sc.Items.ForEach(delegate (Collections.Item item)
{
Console.WriteLine(item.ToString());
});

Source Code

运行看看结果:

C#集合Collections购物车Shopping Cart的更多相关文章

  1. 购物车(Shopping cart) —— B2C网站核心产品设计 (二)

    购物车是做什么的? 我们先来看一下现实超市中的购物车,一个带四个轱辘的铁筐子,客人推来推去,看到什么东西喜欢,就扔进去,觉得东西差不多了,就推到收银台. 那B2C网站中的购物车又是一个什么东西呢? 从 ...

  2. shopping cart

    #Author:Kevin_hou #定义产品列表 product_list =[ ('HUAWEI',5999), ('Watch',500), ('Nike',800), ('Toyota',20 ...

  3. Backbone.js 为复杂Javascript应用程序提供模型(models)、集合(collections)、视图(views)的结构

    Backbone.js 为复杂Javascript应用程序提供模型(models).集合(collections).视图(views)的结构.其中模型用于绑定键值数据和 自定义事件:集合附有可枚举函数 ...

  4. Java集合——Collections工具类

    Java集合——Collections工具类 摘要:本文主要学习了Collections工具类的常用方法. 概述 Collections工具类主要用来操作集合类,比如List和Set. 常用操作 排序 ...

  5. 集合-Collections工具

    1.定义 Collections是集合类的一个工具类,它提供了一系列静态方法用于对容器中的元素进行排序和搜索等一系列操作. 注:Collection是一个集合接口,而Collections是一个有着操 ...

  6. Guava 3: 集合Collections

    一.引子 Guava 对JDK集合的拓展,是最成熟且最受欢迎的部分.本文属于Guava的核心,需要仔细看. 二.Guava 集合 2.1 Immutable Collections不可变集合 1.作用 ...

  7. Java 集合-Collections工具类

    2017-11-05 23:41:53 Collections类 Collections类:Collections类是针对集合进行操作的工具类,都是静态方法. 常用方法: public static ...

  8. Java中的集合Collections工具类(六)

    操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集 ...

  9. java 集合Collections 工具类:排序,查找替换。Set、List、Map 的of方法创建不可变集合

    Collections 工具类 Java 提供1个操作 Set List Map 等集合的工具类 Collections ,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集合 ...

随机推荐

  1. “一切都是消息”--iMSF(即时消息服务框架)之【发布-订阅】模式

    MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately)消息,所以iMSF就是 immediately Message S ...

  2. 在Apex中使用sObject

    sObject对象的定义 Salesforce中的标准对象或自定义对象在Apex中使用时被称作"sObject".sObject对象的一个实例相当于Salesforce中的一条记录 ...

  3. openCV 色彩空间

    ---恢复内容开始--- 1.使用cv2.inrange()获取某个范围内的图像取值,指定某个通道的最小值和最大值 import numpy as np def color_space(image): ...

  4. 阿里云 centos7 django + uWSGI+Nginx + python3 部署攻略

    centos7+nginx+python3+django+uwsgi配置Django 项目部署   1.租的服务器(选择centos)的话,需要在阿里云后台控制台开放几个端口,克隆一下已开放的端口,t ...

  5. 在VS 一切正常,发布到IIS出现问题 [System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本]

    在VS 一切正常,发布到IIS出现问题 [System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本] 前提条件: 在vs 开发的时候,一 ...

  6. 第五章 绘图基础(SINEWAVE)

    //SINEWAVE.C -- Sine Wave Using Polyline (c) Charles Petzold, 1998 #include <Windows.h> #inclu ...

  7. [HDFS_add_1] HDFS 启动过程分析

    0. 说明 HDFS 文件概念 && HDFS 启动过程分析 1. HDFS 文件概念 [1.1 NameNode 职能] 存储文件类型.大小.权限.路径等等元数据 通过 edits( ...

  8. Django电商项目---完成订单页面day5

    完成订单页面 创建订单项目 python manage.py startapp df_order manas/settings.py manas/urls.py 创建静态文件: templates/d ...

  9. 【第一章】zabbix3.4监控WindowsCPU使用率磁盘IO磁盘事件日志监控阈值邮件报警详细配置

    Windows安装zabbix-agent 监控Windows-CPU使用率 监控Windows-磁盘IO性能监控 监控Windows/Linux-磁盘触发器阈值更改 监控Windows-网卡自动发现 ...

  10. 1.2 Spyder的基本使用

    [TOC] 1.0 Spyder的基本使用 1.Spyder的主题与文字修改: 2.Spyder的使用技巧: (一)安装Anaconda: 官网下载:https://www.anaconda.com/ ...