分享

Linq、 集合、数组、Lambda、QuerySyntax(1)

 昵称19715875 2014-10-13

LINQ查询结果集

 

Linq

System.Collections.Generic.IEnumerable<T>

Linq to DataSet

System.Data.EnumerableRowCollection<DataRow>

Linq to SQL

System.Linq.IQueryable<T>

Linq to XML

System.Collections.Generic.IEnumerable<T>

 

System.Array 数组

 

所有数组都继承于System.Array,数组可以用System.Array建立

数组可以是一维也可以是多维数组。"维数"对应于用来识别每个数组元素的下标个数。维数可以多达 32 维。 数组的每一维都有一个非零的长度。在数组的每一维中,数组元素按下标 0 到该维最高下标值连续排列.数组没有固定大小。数组在创建以后仍可以改变大小。

数组是对象,因此每种数组类型都是一个单独的引用类型。这意味着:

1.数组变量中含有指向数据的指针,这些数据包含元素、秩和长度信息。

2.在将一个数组变量赋值给另一个数组变量时,只有指针进行了复制。

3.两个数组变量只有在具有相同的维数和元素数据类型时,才能看成是同一数据类型的数组变量。

基于System.Array定义数组

System.Array x=System.Array.CreateInstance(typeof(string),7);

x.SetValue("4",0);

x.SetValue("8",1);

x.SetValue("7",2);

x.SetValue("1",3);

x.SetValue("3",4);

x.SetValue("2",5);

x.SetValue("5",6);

System.Console.WriteLine(x.GetValue(5));

使用这种方式声明,只能用SetValue与GetValue方法进行赋值与取值,

不能使用x[i]的方式,也不会有x[i].方法() 出现

基于类型定义数组

类型[,] 数组名 = new 类型[该维个数, 该维个数];

类型[,] 数组名;

数组名 = new 类型[个数,个数];

类型[,] 数组名;

数组名 = new 类型[,] {{{值1, 值2, 值3},{值1, 值2, 值3}};

类型[,] 数组名 = {{值1, 值2, 值3},{值1, 值2, 值3}};

类型[] 数组名 ={{值1, 值2, 值3};

数组元素的清空

数组名 = null;

这时不只数组中的元素数据被清空了,而且数组的元素也被清空了.

如果要再使用该数组,需要用重新指定维中的元素个数.

数组的维结构不能被清除.

System.Array类静态成员

清空指定数组位置中元素的值

Array.Clear(数组名, 从第几个开始, 清除几个)

把[源数组名]中的数据复制到[目标数组名]

Array.Copy(源数组名, 目标数组名, 要复制的个数)

按升序排列.只能对一维数组使用

Array.Sort(数组名)

对数组中的元素的顺序返转.

Array.Reverse(数组名)

从前向后在数组中查找指定的值.反回在数组中的位置值,如果没找到返回-1,第一个位置是0.

i= Array.IndexOf (数组名,要找的内容,开始位置)

从后向前在数组中查找指定的值.反回在数组中的位置值,如果没找到返回-1,第一个位置是0.

i = Array.LastIndexOf (数组名,要找的内容,开始位置)

 

不用循环填充数组

string[] v = new string[50];

 

v[0] = "wxwinter";

 

System.Collections.ArrayList.Repeat(v[0], v.Length).CopyTo(v);

 

 

 

泛型方法见集合的实例泛型方法

数组类实例成员

属性

Rank

返回数组的维数

属性

Length

返回数组中元素的个数.

方法

GetLength(维数)

返回指定维数中元素的个数.第一维是0

 

扩展方法见集合扩展方法

System.Collections 集合

 

 

ArrayList

System.Collections

一个数组型集合,使用的是随顺存储

实例成员

Capacity属性

获取或设置 ArrayList 可包含的元素数.当实际元素超过Capacity属性时,Capacity属性会在原来的数值上翻倍

Count属性

集合中元素的个数

int = Add(object)

将对象添加到集合尾部

AddRange(Array/List)

将 ICollection 的元素添加到 ArrayList 的末尾

object = Clone()

创建 ArrayList 的浅表副本

ArrayList =GetRange (index, count)

源 ArrayList 中元素的子集.

可以看成一个视图,两个集合数据是同步的

Insert(i,object)

将对象插入到集合的指定位置

InsertRange (index,Array/List)

将 ICollection 的元素插入到 ArrayList 的指定索引处

Remove(object)

从集合中移除指定对象

RemoveAt(index)

从集合中移除指定位置处的对象

RemoveRange (index,count)

从 ArrayList 中移除一定范围的元素

SetRange (index,Array/List)

将参数中的集合覆盖到调用该方法的集合的指定位置

Reverse()

返转集合中的对象

Sort()

对集合排序

对象集合见 System.IComparable接口

Sort (IComparer) 方法见 System.Collections.IComparer 接口

Clear()

清除集合中所有元素

向后查找

Integer=集合名.IndexOf (要找的内容变量,开始找的位置)

从前向后在数组中查找指定的值.反回在数组中的位置值,如果没找到返回-1,第一个位置是0.

向前查找

Integer =集合名. LastIndexOf(要找的内容变量,开始位置)

从后向前在数组中查找.反回在数组中的位置值,如果没找到返回-1

访问集合中的成员

集合[index]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多