c#数组利器——List<>
来源:互联网 发布:微信网页授权域名 编辑:程序博客网 时间:2024/05/23 01:59
处理数据经常用到数组,而很多时候又不能确定数组的大小,或数组大小是动态变化的。如果按照C语言的方法,只能预先定义一个尽量大的数组,无视数组后面元素浪费的空间。但这是非常不合算的,C#中提供了一个类:List<>,这个类可以实现动态大小的数组。
Namespace: System.Collections.Generic
Assembly: mscorlib (in mscorlib.dll)
看下面的例子,很好的诠释了List<>类的用法:(来自MSDN http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx)
using System;using System.Collections.Generic;public class Example{ public static void Main() { List<string> dinosaurs = new List<string>(); Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);//注意Capacity和Count是不同的概念,Capacity以2的整数次幂往上长 dinosaurs.Add("Tyrannosaurus");//添加。默认加到数组的最末尾 dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); Console.WriteLine("\nContains(\"Deinonychus\"): {0}", dinosaurs.Contains("Deinonychus"));//判断是否存在某个元素 Console.WriteLine("\nInsert(2, \"Compsognathus\")"); dinosaurs.Insert(2, "Compsognathus");//插入 Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]);//可以这样像数组一样直接调用 Console.WriteLine("\nRemove(\"Compsognathus\")"); dinosaurs.Remove("Compsognathus");//移除元素 Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } dinosaurs.TrimExcess();//手动设置Capacity的大小,使其等于Count值,这样就一个空间都不浪费了 Console.WriteLine("\nTrimExcess()"); Console.WriteLine("Capacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); dinosaurs.Clear();//清空,count变为零,但是Capacity的值没有变 Console.WriteLine("\nClear()"); Console.WriteLine("Capacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); }}/* This code example produces the following output:Capacity: 0TyrannosaurusAmargasaurusMamenchisaurusDeinonychusCompsognathusCapacity: 8Count: 5Contains("Deinonychus"): TrueInsert(2, "Compsognathus")TyrannosaurusAmargasaurusCompsognathusMamenchisaurusDeinonychusCompsognathusdinosaurs[3]: MamenchisaurusRemove("Compsognathus")TyrannosaurusAmargasaurusMamenchisaurusDeinonychusCompsognathusTrimExcess()Capacity: 5Count: 5Clear()Capacity: 5Count: 0 */
在C#中还有一个类:Array,用法与List相似,但是不能动态改变大小,另外,Array的处理效率比List要高一些。
- c#数组利器——List<>
- C# List数组创建
- Json转换利器Gson—— List to Json
- C# list与数组转换
- C#中的数组,ArrayList,List
- c#中数组 list Arraylist
- Json转换利器Gson——简单对象转化和带泛型的List转化
- C# List<T> 数组,集合等排序
- C# Linq操作List或数组
- C#基础 之 数组Array、ArrayList、List
- C#中数组,ArrayList,List的区别
- C#数组、List和ArrayList的区别
- C# ——List<Enum> 转化为List<string>
- 黑马程序员——函数与数组:精打细算的年级组长的利器
- 颠覆C#王权的“魔比斯环” — 实现AOP框架的终极利器
- 颠覆C#王权的“魔比斯环” — 实现AOP框架的终极利器
- C#编程利器
- JUnit——单元测试利器
- hoj 2503 Bribing FIPA
- shell程序设计002
- strstr源码
- SQLSever 2005 无法识别中文(字段值“?”,sql语句中无法识别中文)
- Metasploit渗透测试指南
- c#数组利器——List<>
- 哑铃健身图解
- POJ 2909 Goldbach's Conjecture(我的水题之路——任一数为素数对之和)
- vs2010 的syslink control无法支持 多字节字符集
- HOJ2688 Color Segment
- cast 和convert用法详解
- Phone Gap问题集中解决
- Andriod 学习之六 Activity - ListView
- ASIHTTPRequest Understanding persistent connection reuse