文档章节

学用 ASP.Net 之 System.Collections.Generic 下的容器类

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 597
阅读 11
收藏 0
点赞 0
评论 0

System.Collections.Generic.Dictionary<>;       //键/值对集合
System.Collections.Generic.KeyValuePair<>;     //键/值对结构, 作为 Dictionary<> 的一个元素存在
System.Collections.Generic.SortedDictionary<>; //相当于 Key 能自动排序 Dictionary<>
System.Collections.Generic.SortedList<>;       //和 SortedDictionary<> 功能相似, 但内部算法不同, 其 Keys、Values 可通过索引访问

System.Collections.Generic.HashSet<>;   //无序、无重复的元素集合
System.Collections.Generic.SortedSet<>; //相当于能自动排序的 HashSet<>
System.Collections.Generic.List<>;      //相当于泛型的 ArrayList, 元素可重复、可排序、可插入、可索引访问

System.Collections.Generic.Queue<>; //队列, 先进先出
System.Collections.Generic.Stack<>; //堆栈, 后进先出

System.Collections.Generic.LinkedList<>;     //双向链表
System.Collections.Generic.LinkedListNode<>; //LinkedList<> 的节点

System.Collections.Generic.SynchronizedCollection<>;         //线程安全的集合
System.Collections.Generic.SynchronizedReadOnlyCollection<>; //线程安全的只读集合
System.Collections.Generic.SynchronizedKeyedCollection<>;    //线程安全的键/值集合


Dictionary<>、KeyValuePair<>:
protected void Button1_Click(object sender, EventArgs e)
{
    Dictionary<string, int> dict = new Dictionary<string, int>();
    dict.Add("K1", 123);
    dict["K2"] = 456;
    dict.Add("K3", 789);

    string str = "";
    foreach (KeyValuePair<string, int> k in dict)
    {
        str += string.Format("{0}-{1}; ", k.Key, k.Value); //K1-123; K2-456; K3-789; 
    }
    TextBox1.Text = str;
}


SortedDictionary<>:
protected void Button1_Click(object sender, EventArgs e)
{
    SortedDictionary<string, int> dict = new SortedDictionary<string, int>();
    dict.Add("K3", 333);
    dict["K1"] = 111;
    dict.Add("K2", 222);

    SortedDictionary<string, int>.KeyCollection ks = dict.Keys;
    SortedDictionary<string, int>.ValueCollection vs = dict.Values;

    string s1, s2, s3;
    s1 = s2 = s3 = "";

    foreach (KeyValuePair<string, int> k in dict)
    {
        s1 += string.Format("{0}-{1}; ", k.Key, k.Value); //K1-111; K2-222; K3-333;
    }

    foreach (string s in ks) { s2 += s + "; "; }          //K1; K2; K3;
    foreach (int n in vs) { s3 += n.ToString() + "; "; }  //111; 222; 333; 

    TextBox1.Text = s1 + "\n" + s2 + "\n" + s3;
}


SortedList<>:
protected void Button1_Click(object sender, EventArgs e)
{
    SortedList<string, int> dict = new SortedList<string, int>();
    dict.Add("K3", 333);
    dict["K1"] = 111;
    dict.Add("K2", 222);

    string s1, s2, s3;
    s1 = s2 = s3 = "";

    foreach (KeyValuePair<string, int> k in dict)
    {
        s1 += string.Format("{0}-{1}; ", k.Key, k.Value); //K1-111; K2-222; K3-333;
    }

    s2 = dict.Keys[0];              //K1
    s3 = dict.Values[0].ToString(); //111

    TextBox1.Text = s1 + "\n" + s2 + "\n" + s3;
}


HashSet<>、SortedSet<>:
protected void Button1_Click(object sender, EventArgs e)
{
    HashSet<string> hs = new HashSet<string>();
    hs.Add("ccc");
    hs.Add("bbb");
    hs.Add("aaa");

    SortedSet<string> ss = new SortedSet<string>();
    ss.Add("ccc");
    ss.Add("bbb");
    ss.Add("aaa");

    string s1 = "", s2 = "";

    foreach (string s in hs) { s1 += s + " "; } //ccc bbb aaa 
    foreach (string s in ss) { s2 += s + " "; } //aaa bbb ccc 

    TextBox1.Text = s1 + "\n" + s2;
}


List<>:
protected void Button1_Click(object sender, EventArgs e)
{
    List<int> list = new List<int>();
    list.Add(11);
    list.Add(22);
    list.Insert(0, 33);

    string s1, s2 = "", s3, s4 = "";

    s1 = list[0].ToString(); //33
    for (int i = 0; i < list.Count; i++) { s2 += list[i].ToString() + " "; } //33 11 22

    list.Sort();

    s3 = list[0].ToString(); //11
    foreach (int n in list) { s4 += n.ToString() + " "; } //11 22 33 

    TextBox1.Text = s1 + "\n" + s2 + "\n" + s3 + "\n" + s4;
}


LinkedList<>、LinkedListNode<>:
protected void Button1_Click(object sender, EventArgs e)
{
    LinkedList<string> list = new LinkedList<string>();
    list.AddFirst("aaa");
    list.AddLast("bbb");
    list.AddFirst("ccc");
    list.AddAfter(list.First, "ddd");
    list.AddBefore(list.Last, "eee");

    string s1 = "", s2 = "", s3 = "", s4 = "", s5 = "";

    foreach (string s in list) { s1 += s + " "; } //ccc ddd aaa eee bbb 

    LinkedListNode<string> node = list.First;
    s2 = node.Value.ToString();         //ccc
    node = node.Next;
    s3 = node.Value.ToString();         //ddd
    node = list.Last.Previous.Previous;
    s4 = node.Value.ToString();         //aaa

    list.Remove("eee");
    list.RemoveFirst();
    list.RemoveLast();

    node = list.First;
    while (node != null)
    {
        s5 += node.Value.ToString() + " "; //ddd aaa 
        node = node.Next;
    }
    TextBox1.Text = s1 + "\n" + s2 + "\n" + s3 + "\n" + s4 + "\n" + s5;
}

本文转载自:http://www.cnblogs.com/del/archive/2011/01/11/1932612.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
asp.net MVC 3多语言方案--再次写, 配源码

之前写了一篇asp.net MVC多语言方案,那次其实是为American Express银行开发的。有许多都是刚开始接触,对其也不太熟悉。现在再回过头去看,自己做一个小网站,完全用asp.net mvc 3的技术。要...

mikelij
2012/03/29
0
0
.NET Core开发日志——从ASP.NET Core Module到KestrelServer

ASP.NET Core程序现在变得如同控制台(Console)程序一般,同样通过Main方法启动整个应用。而Main方法要做的事情很简单,创建一个WebHostBuilder类,调用其Build方法生成一个WebHost类,最后启...

Ken.W
07/14
0
0
学习笔记24(HttpHandler详解)

概述 HttpHandler是一个HTTP请求的真正处理中心,也正是在这个HttpHandler容器中,ASP.NET Framework才真正地对客户端请求的服务器页面做出编译和执行,并将处理过后的信息附加在HTTP请求信息...

迷途d书童
2012/02/29
453
0
HTTPModules与HTTPHandler

HTTPModules与HTTPHandler 一 asp.net请求的处理过程 ------------------- HttpModule 必须要掌握的东西 HttpHandler 必须要掌握的东西,非常有用 以上两个的实例 ---...

邓小峰
2009/03/26
0
0
ASP.NET的(HttpModule,HttpHandler)

在以前的ASP时候,当请求一个*.asp页面文件的时候,这个HTTP请求首先会被一个名为inetinfo.exe进程所截获,这个进程实际上就是www服务。截获之后它会将这个请求转交给asp.dll进程,这个进程就...

晨曦之光
2012/03/09
154
0
ASP.NET MVC应用迁移到ASP.NET Core及其异同简介

ASP.NET Core是微软新推出支持跨平台、高性能、开源的开发框架,相比起原有的ASP.NET来说,ASP.NET Core更适合开发现代应用程序,如跨平台、Dorker的支持、集成现代前端开发框架(如npm、bow...

dotNET跨平台
04/19
0
0
.NET Core+MySql+Nginx 容器化部署

1. 引言 上两节我们通过简单的demo学习了docker的基本操作。这一节我们来一个进阶学习,完成ASP.NET Core + MySql + Nginx的容器化部署。 本文是基于CentOS 7.4环境进行演示,示例项目可以访...

dotNET跨平台
01/11
0
0
ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)

按网上的做法用dockerfile文件是可以弄得出来的,http://www.docker.org.cn/article/119.html, 不过我想把网站文件放在外面硬盘目录,再映射进去,这样只要在硬盘目录中修改CSHTML文件后重启...

niunan
2017/07/23
0
0
ASP.NET - 全球化资源文件[Web Forms]

I:本博文代码示例效果图 好久没来写随笔了.不多说先上大饼! 跟着直接上 [代码下载地址] II:ASP.NET 资源文件介绍 在ASP.NET特殊文件夹内有那么两个不太引人注意,他们分别是AppGlobalResource...

晨曦之光
2012/06/05
865
0
在asp.net2.0中使用Jquery调用Web Service[附源代码]

代码:/Files/zhuqil/JSONDemo.zip 介绍: 我们都知道,默认情况下,一个asp.net Web Service 返回的数据格式是XML的,处理XML数据总是会花费一些开销,最近,另外一种JSON的格式非常流行并且...

王二狗子11
01/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周一乱弹 —— 你的朋友圈有点生锈了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @Devoes :分享Trademark的单曲《Only Love (电视剧《妙手仁心 II》插曲)》: 《Only Love (电视剧《妙手仁心 II》插曲)》- Trademark 手机党少...

小小编辑
今天
162
6
【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
今天
1
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
2
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
AB 压力测试

Ubuntu 安装AB apapt-get install apache2-utils 使用AB 压力测试 -c 并发数 -n请求总数 ab -c 3000 -n 10000 http://localhost/test/index.php AB只能测试localhost 返回结果 This is Apac......

xiawet
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部