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

对象,即是网店的商品物件,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. 安卓开发_深入理解Activity和Fragment的关系

    Fragment(碎片)是必须嵌入在 Activity(活动) 中使用的.Fragment的生命周期随着Activity的生命周期的变化而变化 一.首先让我们看下Activity和Fragment的生 ...

  2. ubuntu18.04突然无法上网解决方法

    sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service ...

  3. 【HANA系列】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...

  4. 第四章 Hyper-V 2012 R2 网络配置

      尼玛的我不高兴写了,所以下面的文档我直接把原来的pdf给转换出来,加了点自己的注解,我写的话会写自己觉得终于的章节. 在搭建虚拟化平台时,网络的虚拟化是一个非常重要的环节,如何保障网络的持续可用并 ...

  5. scp 实现远程异地备份

    1.先做好脚本 2.再使用crontab 定时执行计划任务 0 1 * * * /usr/bin/expect /root/script/scpautodown.sh  #执行,也可先定义环境变量 0 ...

  6. 3.6Python数据处理篇之Numpy系列(六)---Numpy随机函数

    目录 目录 前言 (一)基础的随机函数 (二)轴的随机函数 (三)概率的随机函数 目录 前言 前一段日子学了numpy,觉得无趣,没有学完,不过后来看了看matplotlib,sympy等库时,频频用 ...

  7. Linux 小知识翻译 - 「环境变量」

    这次,谈谈关于「环境变量」的话题. 所谓变量,就是在程序中设置的,相当于在内存中准备的「一个用来存放数据的小箱子」. 即,程序通过变量来保存值,通过变量保存的内容来进行各式各样的计算处理. 「环境变量 ...

  8. [ADS]An installation support file could not be installed

    ADS:ARM Developer Suits 错误:An installation support file could not be installed 描述: 之前安装了一个不能用的ADS的版本 ...

  9. Redis的配置和使用

    下载Redis:  https://github.com/dmajkic/redis/downloads 学习地址:http://bbs.paris8.org/viewthread.php?tid=6 ...

  10. A - Divisors POJ - 2992 (组合数C的因子数)数学—大数

    题意:就是求组合数C的因子的个数! 先说一下自己THL的算法,先把组合数求出来,然后将这个大数分解,得到各个素数的个数,再利用公式!用最快的大数分解算法 分析一下时间复杂度!   n1/4但是分析一下 ...