一、Array 类 (System)
声明数组(本身也是一种变量,要先声明再使用)
1.声明数组的语法,数组大小由长度绝定;
数据类型 [] 数组名;
如:
string[] student; //字符串型数组
int[] month; //整型数组 2.指定数组大小
string[] student;
student = new string[3]; //先声明数组,再指定大小3个字符.
或者
string [] student = new string [3]; //声明同时指定其大小为3个字符。 3.初始化数组
string[] student = new string[3] { "学生","士兵","教师"};
//声明一个包含三个元素的字符串型数组,并为组中的元素赋初始值. string[] student = new string[] { "学生", "士兵", "教师" };
string[] student = { "学生", "士兵", "教师" };
//不指定数组的长度(大小),数组长度由打括号中的元素决定; string[] student = new string [4];
student[0] = "罗帅";
student[2] = "楠楠";
//给指定的数组下标赋值 4.访问数组
//数组元素的编号称为下标,下标从零开始. 二、Array应用
string[] ar = { "a", "c", "d", "e", "f" };
int i = Array.IndexOf(ar, "d", 1); //在abc数组中查找"d"所有的位置,从abc[1]开始找,结果:2
int l = Array.LastIndexOf(ar, "a", 0); //在abc数组中查找"c"所有的位置,从abc[0]开始找,结果:0
Array.Reverse(ar); //颠倒ar数组,此时的ar[0]等于"f"
Array.Sort(ar); //Sort与Reverse相反
object[] oar ={1,false,1.5,"string"}; //定义一个可以接受任何类型的数组; //Array型数组要重定义大小,对于大数组会特别慢;且无法在中间插入元素;不能清除它们(只能设置为空或0) ;
不能像javascript数组那样用push添加; 三、ArrayList 类 (System.Collections)
ArrayList需要引用:using System.Collections; ArrayList就是动态数组,是Array的复杂版本,它提供了如下一些好处:
1.动态的增加和减少元素
2.实现了ICollection和IList接口
3.灵活的设置数组的大小 ArrayList alist = new ArrayList();
alist.Add(1);
alist.Add(2); ArrayList 类,常用属性
Count属性:获取 ArrayList 中实际包含的元素的个数。
如:
int c = alist.Count; //c等于2 ArrayList 类,常用方法
Contains方法:确定某元素是否在 ArrayList 中
如:
bool bl = alist.Contains("a"); bl等于True Add方法:将对象添加到 ArrayList 的结尾处。
如:
alist.Add(3); ToArray方法:将ArrayList 的元素复制到指定元素类型的新数组中。
如:
Int32[] iar = (Int32[])alist.ToArray(typeof(Int32));
object[] oar = alist.ToArray(typeof(object)); 遍历 ArrayList
第一种遍历
foreach(object o in al)
{
//o
}
第二种遍历
for(int i=0;i<alist.Count;i++)
{
//alist[i]
}
第三种遍历
IEnumerator ie = alist.GetEnumerator();
while (ie.MoveNext())
{
//ie.Current.ToString()
} 五、List 泛型类 (System.Collections.Generic)
表示可通过索引访问的对象的强类型列表
需要引用using System.Collections.Generic; List<obj> list = new List<obj>();
list.Add(new obj(1 2, 1));
list.Add(new obj(2, 4, 3)); Count属性:获取 List<T> 中实际包含的元素的个数。
如:
int c = list.Count; //c等于2 Add方法:将对象添加到 List<T> 的结尾处。
如:
list.Add(new obj(3, 4, 5)); Contains方法:确定某元素是否在 List<T> 中。
如:
bool bl = list.Contains(new obj(2, 4, 3)); bl等于True 六、List类应用
通过for添加隐式类型
如:
List<object> list = new List<object>();
for (int i = 0; i < 5; i++)
{
list.Add(new { name = "sntetwt", age = 100 });
} dropdownlist控件绑定泛型list<T>
如:
DropDownList drp = new DropDownList();
drp.DataSource = list;
drp.DataTextField = "name";
drp.DataValueField = "age";
drp.DataBind();

//把数字字符串反序列化为ListList<int>集合;
//以下述方法只对[1,2,5,3]这样起作用,并且不能是"1,2,5,3"这种格式;
List<int> listid = new JavaScriptSerializer().Deserialize<List<int>>("[1,2,5,3]");
//格式:List<int> listid = new List<int> {1,2,5,3};
foreach (int id in listid)
Response.Write(id); //结果:1253

七、IEnumerable(遍历) 接口 (System.Collections)
公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。
对集合使用foreach语句:
foreach(int i in col){...} 相当于:
IEnumerator etor = ((IEnumerable)col).GetEnumerator();
try
{
while(etor.MoveNext())
{
ElementType clem (ElementType)etor.Current;
...;
}
}
finally{(IDisposable)enumerator).Dispose();} 实例应用:通过Linq查找再遍历,然后以JSON的格式输出到客户端;
using System.Linq;
using System.Web.Script.Serialization;
using System.Collections; int[] items = new int[] { 1, 2, 3, 4, 5 };
IEnumerable<int> ints = from item in items
where item > 2.5
select item;
Response.Write(new JavaScriptSerializer().Serialize(ints)); 结果:[3,4,5]

  

Array、ArrayList、List、IEnumerable、for、foreach应用的更多相关文章

  1. Array,ArrayList,泛型List比较

    在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...

  2. c#中Array,ArrayList 与List<T>的区别、共性与转换

    本文内容来自我写的开源电子书<WoW C#>,现在正在编写中,可以去WOW-Csharp/学习路径总结.md at master · sogeisetsu/WOW-Csharp (gith ...

  3. 类 Array Arraylist List Hashtable Dictionary

    总结C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue  我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashT ...

  4. 一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach

    一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 代 ...

  5. 扩展IEnumerable<T> ForEach()方法

      相信很多人,在用Linq时,都会困惑为什么IEnumerabel<T>没有ForEach,虽然 我们一样可以这样写,很快读写 foreach(item in items) { Cons ...

  6. C# 集合类 Array,Arraylist,List,Hashtable,Dictionary...

    我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类.我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和 ...

  7. c# array arraylist 泛型list

    1 array 数组  是存储相同类型元素的固定大小的数据的顺序集合.在内存中是连续存储的,所以索引速度非常快,而且赋值和修改元素也非常简单. //定义字符串数组 大小为3 string[] str1 ...

  8. C#中 [], List, Array, ArrayList 區別

    [] 是針對特定類型.固定長度的.List 是針對特定類型.任意長度的.Array 是針對任意類型.固定長度的.ArrayList 是針對任意類型.任意長度的.Array 和 ArrayList 是通 ...

  9. IEnumerable 使用foreach 详解

    自己实现迭代器 yield的使用 怎样高性能的随机取IEnumerable中的值 我们先思考几个问题: 为什么在foreach中不能修改item的值? 要实现foreach需要满足什么条件? 为什么L ...

  10. Array,ArrayList、List<T>、HashSet<T>、LinkedList<T>与Dictionary<K,V>

    Array: 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. 但是数组存在一些不足的地方.在数组的两个数据间插入数据是很麻烦的,而且在声明数组的时候 ...

随机推荐

  1. Windows Phone本地数据库(SQLCE):14、删除数据(翻译)

    这是“windows phone mango本地数据库(sqlce)”系列短片文章的最后一篇第十四篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需 ...

  2. C#编程(三十三)----------Array类

    Array类 创建数组 Array intArray1 = Array.CreateInstance(typeof(int), 5); for (int i = 0; i < 5; i++) { ...

  3. HTML5之SVG

    1.背景 SVG是Scalable Vector Graphics的缩写,意为可缩放矢量图形.1998年,万维网联盟成立了一个工作组,研发一种通过 XML来表现矢量图形的技术——SVG!由于SVG也是 ...

  4. SharePoint Online 创建和使用栏

    前言 本文介绍如何在Office 365中创建和使用栏. 正文 通过登录地址登录到Office 365的SharePoint Online站点中,我们可以在右上角的设置菜单中,进入网站内容: 找到我们 ...

  5. CURLcode的定义

    经常性遇到libcurl的问题,而且都特别奇怪,记录一下CURLcode的定义: http://curl.haxx.se/libcurl/c/libcurl-errors.html   #includ ...

  6. 深入分析ReentrantLock公平锁和非公平锁的区别

    在ReentrantLock中包含了公平锁和非公平锁两种锁,通过查看源码可以看到这两种锁都是继承自Sync,而Sync又继承自AbstractQueuedSynchronizer,而AbstractQ ...

  7. 联想昭阳(Lenovo)

    1996年,联想®昭阳系列推出了第一台笔记本电脑S5100.在经历了十几年的发展之后,联想昭阳系列也成为了国内市场占有率最高的国产商用笔记本品牌之一.昭阳品牌对于联想意义非凡,不仅仅是因为首款联想笔记 ...

  8. MySql清空所有表数据【慎用】

    CREATE PROCEDURE `up_truncate_all_table`() BEGIN ; ); DECLARE cur1 CURSOR FOR SELECT table_name from ...

  9. gunicorn结合django启动后台线程

    preload 为True的情况下,会将辅助线程或者进程开在master里,加重master的负担(master最好只是用来负责监听worker进程) django应用的gunicorn示例:只在主线 ...

  10. dubbo源码解析-spi(4)

    前言 本篇是spi的第四篇,本篇讲解的是spi中增加的AOP,还是和上一篇一样,我们先从大家熟悉的spring引出AOP. AOP是老生常谈的话题了,思想都不会是一蹴而就的.比如架构设计从All in ...