文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 597
阅读 11
收藏 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
深圳
程序员
私信 提问
.NET Core开发日志——从ASP.NET Core Module到KestrelServer

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

Ken.W
2018/07/14
0
0
asp.net调用opencv类库,实现图像处理显示

asp.net调用opencv类库,实现图像处理显示 原理上来说,通过dll的调用,无论是asp.net还是winform都可以调用opencv及其类库。但是在实现的过程还是有许多细节是经过摸索和总结才得到结果的。...

禾路
2017/08/24
0
0
AJAX ScriptManagerProxy调用webservice

内容页: <%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ScriptManagerProxyDemo.WebForm1" %> webse......

晨曦之光
2012/05/16
87
0
asp.net MVC 3多语言方案--再次写, 配源码

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

mikelij
2012/03/29
0
0
ASP.NET Core 中的依赖注入

什么是依赖注入 软件设计原则中有一个依赖倒置原则(DIP),为了更好的解耦,讲究要依赖于抽象,不要依赖于具体。而控制反转(Ioc)就是这样的原则的其中一个实现思路, 这个思路的其中一种实现...

dotNET跨平台
2018/09/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
11
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
7
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
4
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
2
0
RabbitMQ学习(2)

1. 生产者客户端 void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body) 1. 在生产者客户端发送消息时,首先......

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部