您的位置:首页 > 移动开发 > Objective-C

LinQ to Object

2012-04-20 21:00 309 查看
今天我们学习了很多内容,不过全是基础,所以听起来不怎么费力呢
今天的练习主要写了:
排列:orderby orderbydescending (升序降序) thenby thenbydescending(当需要用thenby排序时,必须要有orderby的参与)
聚合:count ,avg,max,min(今天主要举这些例子了)
集合:交集(intersect),并集(union),差集(Except),(distinct)移除重复项
元素操作:
ElementAt :按索引返回某一个元素(不懂这个)
ElementAtOrDefault:按索引返回某一个元素,如果没有的话,就返回默认值
First:返回集合中的每一个元素或满足条件的第一个元素
FirstOfDefault:返回集合中的每一个元素或满足条件的第一个元素,如果不存在,就返回默认值
Single:返回集合中的唯一元素或者是满足条件的某个元素

SingleOfDefault:返回集合中的唯一元素或者是满足条件的某个元素,如果不存在,返回默认值
分区函数:
Skip:跳过(输出后面的元素)
Take:取
SkipWhile:只要不满足条件就停止跳过
TakeWhile:(这个不知道怎么说,明天懂了在说哈)
联接查询:
join GroupJoin selectMany(这个也不好说)

View Code

using System;
using System.Collections.Generic;
using System.Text;
using T2;
using System.Linq;
using System.Collections;

namespace T1
{
delegate void MyDelegate1 (int a);
delegate int MyDelegate2 (int a);
class Program
{
static void Main(string[] args)
{

//var i = 100;//推断类型:类型是确定,声明的时候必须初始化

//var s = "hello world";
//Console.WriteLine(s.ToFirstUpper());
//Console.WriteLine(s.ToMyString("小蜜"));

//MyDelegate1 md1 = delegate(int a) { Console.WriteLine("hello world"); };// 定义匿名方法,必须使用委托变量保存,匿名方法的方法名都是delegate
//md1(2);

////lambda表达式:就是一个匿名方法的简写形式
////-()表示输入的参数列表;  => 读goes to  {}表示方法体
////1、表达式中的参数列表可以省略数据类型
////2、当参数列表中只有一个参数时,可以省略(),其他情况都不能省略
////3、当方法体中只有一条语句,并且该语句是return 语句时。可以省略{},并且同时必须省略return关键字
//MyDelegate1 md2= (int a) => { Console.WriteLine("Hello world"); };
//MyDelegate1 md3 = (a) => { Console.WriteLine("Hello world"); };

//MyDelegate1 md4 = a => {  Console.WriteLine("Hello world"); };

//MyDelegate1 md5 = a => a = a * 100;
//MyDelegate2 md6 = a => { return a * 1000; };
//var d = md6(23);
//Console.WriteLine(d);
////匿名类:没有名字的类,主要用作临时传递数据
//var x = new { Name="zhangsan",Age=18,Score=54};
//Console.WriteLine(x.Age);

//实现了IQueryAble<T>接口或者IEnumerable<T>接口的对象才能使用linq

int[] ss = { 5,6,34,23,12,25,78,43};
//语法查询
//var s=from a in ss
//    where a>10
//        select a;

//方法查询:使用Where进行过滤
var s= ss.Where(a => a > 10);

foreach (var x in s)
{
Console.WriteLine(x);
}

//投影:就是根据数据转换成你需要的数据
var s1 = ss.Select(a=>a*100);
foreach (var x in s1)
{
Console.WriteLine(x);
}

var s2 = ss.Where(a => a > 10).Select(a => "成绩是:" + a);
foreach (var x in s2)
{
Console.WriteLine(x);
}

var s3 = ss.Select(a => new {name="张三",Age=a });
foreach (var x in s3)
{
Console.WriteLine(x.name+"的年龄是:"+x.Age);
}

var s4 = ss.Count(a => a > 50);
Console.WriteLine(s4);

ArrayList list = new ArrayList{
new Student(){Name="小蜜",Score=70},
new Student(){Name="洋葱",Score=90},
new Student(){Name="西瓜",Score=54},
new Student(){Name="脑残",Score=48},
new Student(){Name="阿木",Score=88},
new Student(){Name="杨桃",Score=65}
};

var s5 = list.Cast<Student>().Where(a => a.Score >= 60);

foreach (var x in s5)
{
Console.WriteLine(x.Name + "的成绩是:" + x.Score);
}

}

//static void FF()
//{
//    Console.WriteLine("hello world");
//}

}

class Student
{
public string Name
{
get;
set;
}
public int Score
{
get;
set;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: