LINQ to Object


 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Collections;
5
6 namespace Demo1
7 {
8 class Program
9 {
10
11 static void Main(string[] args)
12 {
13 Console.WriteLine("简单查询");
14 string[] currentVideoGames = { "Morrowind", "Uncharted 2", "Fallout 3", "Daxter", "System Shock 2" };
15 IEnumerable<string> subSet = from g in currentVideoGames where g.Contains(" ") orderby g select g;
16 foreach (string s in subSet)
17 Console.WriteLine(s);
18
19 int [] numbers = {10,20,30,1,2,4,8 };
20 List<Person> personList = new List<Person>
21 {
22 new Person{Age = 15, Name = "Lucy"},
23 new Person{Age = 13, Name = "Tom"},
24 new Person{Age = 18, Name = "Bob"},
25 new Person{Age = 20, Name = "Jake"}
26 };
27 Console.WriteLine("简单条件查询");
28 var resu = from i in numbers where i < 10 select i;
29 foreach (var s in resu)
30 Console.WriteLine(s);
31 Console.WriteLine("复合条件查询");
32 var myPersons = from p in personList where p.Age >= 18 && p.Name!="Jake" select p;
33 foreach (var p in myPersons)
34 Console.WriteLine("Age = {0}, Name = {1}",p.Age, p.Name);
35
36 Console.WriteLine("把ArrayList转换成一个兼容于 IEnumerable<T>的类型");
37 ArrayList persons = new ArrayList()
38 {
39 new Person{Age = 13, Name = "Tom" },
40 new Person{Age = 20, Name = "Jake"}
41 };
42 var personsEnum = persons.OfType<Person>();
43 var personTom = from p in personsEnum where p.Name == "Tom" select p;
44 foreach (var p in personTom)
45 Console.WriteLine("Age = {0}, Name = {1}",p.Age,p.Name);
46
47 Console.WriteLine("使用 ofType<T> 筛选数据");
48 ArrayList myStuff = new ArrayList();
49 myStuff.AddRange(new object[]{10,400,8,false,new Person(), "string data"});
50 var myInts = myStuff.OfType<int>();
51 foreach (int i in myInts)
52 Console.WriteLine("Int value: {0}",i);
53
54 Console.WriteLine("将查询结果投影到新数据类型");
55 var nameList = from n in personList select new { n.Name };
56 foreach (var n in nameList)
57 Console.WriteLine(n.Name);
58 // Except() 返回容器与比较的容器的不同之处
59 // Intersect() 返回容器与比较的容器的相同之处
60 // union() 合并成员,不允许重复(任何地方)
61 // Concat() 直接连接,不检查(如果想检查,加上 Distinct() 即可)
62 // Count(), Max(), Min(), Sum(), Average() ...s
63 Console.WriteLine("常用方法");
64 List<string> str1 = new List<string> { "Yugo", "Aztec", "BMW"};
65 List<string> str2 = new List<string>{"BMW","Saab","Aztec"};
66 Console.WriteLine("Use Except()");
67 foreach(var i in str1.Except(str2))
68 Console.WriteLine(i);
69 Console.WriteLine("Use Intersect()");
70 foreach (var i in str1.Intersect(str2))
71 Console.WriteLine(i);
72 Console.WriteLine("Use Union()");
73 foreach (var i in str1.Union(str2))
74 Console.WriteLine(i);
75 Console.WriteLine("Use Concat()");
76 foreach (var i in str1.Concat(str2))
77 Console.WriteLine(i);
78 Console.ReadLine();
79 }
80 }
81 public class Person
82 {
83 public int Age { get; set; }
84 public string Name { get; set; }
85 }
86 }

LINQ to Object,布布扣,bubuko.com

时间: 2024-10-10 23:49:47

LINQ to Object的相关文章

Linq to Object 的简单使用示例

语言集成查询 (LINQ) 是 Visual Studio 2008 中引入的一组功能,可为 C# 和 Visual Basic 语言语法提供强大的查询功能. LINQ 引入了标准易学的数据查询和更新模式,可以扩展该方法来支持任何类型的数据存储. Visual Studio 包括 LINQ 提供程序集,后者支持将 LINQ 与 .NET Framework 集合.SQL Server 数据库.ADO.NET 数据集和 XML 文档结合使用. LINQ特有的编程结构: 隐式类型本地变量:C#的va

.NET面试题系列[13] - LINQ to Object

.NET面试题系列目录 名言警句 "C# 3.0所有特性的提出都是更好地为LINQ服务的" - Learning Hard LINQ是Language Integrated Query(语言集成查询)的缩写,读音和单词link相同.不要读成“lin-Q”. LINQ to Object将查询语句转换为委托.LINQ to Entity将查询语句转换为表达式树,然后再转换为SQL. LINQ的好处:强类型,相比SQL语句它更面向对象,对于所有的数据库给出了统一的操作方式. LINQ的一些

Linq to OBJECT延时标准查询操作符

1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果. 2.Select  操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中的元素类型相同,也可以不同.下面来看看Select方法的原型. 3.SelectMany 操作符用于根据输入序列中的每一个元素,在输出序列中创建相应的零个或者多个元素,与Select操作符不同,Select操作符会根据输入序列中的每一个元素创建一个对应的输出序列元素,而SelectMany操作符可

Linq技术三:Linq to Object 和生成数据表的扩展方法

这篇来谈论一下Linq第三个方面的应用:Linq to Object,只要是继承了IEnumerable或IQueryable接口的Object都能使用Linq特性进行操作.在操作过程当中可能很多人都觉得不好调试不能实时地观察结果数据集,想把IQuery的Linq查询语句转换成数据表DataTable,要怎么实现转换呢?来看一下. 先来说一场景解释一下为什么需要用Linq来解决一些问题,能解决一些什么样的问题,相对于SQL,DataTable等一些传统操作方式有哪些优势? 场景:目前主要数据源有

Linq To SQL和Linq To Object的批量操作InsertAllOnSubmit介绍

无论是Linq To SQL还是Linq To Object(Entity frameworks)它们都为开发人员提供了Insert操作,及Insert集合操作,即InsertOnSubmit和InsertAllOnSubmit,前者是将一个实体标记为一个插入状态,而后都是将一个集合标记为插入状态,... 无论是Linq To SQL还是Linq To Object(Entity frameworks)它们都为开发人员提供了Insert操作,及Insert集合操作,即InsertOnSubmit

解析LINQ To Object

1.解剖Linq to object   此文转载自http://www.cnblogs.com/irenebbkiss/p/4155480.html LINQ想必大家都不陌生了,它 的出现使得我们的代码变得更短.更优雅了.至于LINQ是什么,Linq to object这类的扩展方法到底做了些什么.我们使用的EF是如何实现的(如何解析Expression).我都将一一为大家分享下我的理解.如果有说得 不对的地方,也请大家指出.下面进入正题 大家先将代码左上角的using System.Linq

【转】Linq to EF 与Linq to Object 使用心得

大家都知道Linq既可以用来查询数据库对象(我这里指的是Entity FrameWork里的Model对象),也可以用来查询内存中的IEnumerable对象. 两者单独查询时都不会出现什么问题,不过混合在一起时(一般是用关键字来join连接),要注意的地方就多着了. 情形1:Linq to Object 连接(join) Linq to Entity 我们首先来看这段代码:(注意:Linq代码里是把内存中的数据代码,也就是Linq to object放在join前面,数据库的数据代码放在joi

(第一篇) 一步一步带你了解linq to Object

要想学好linq to object 我们必须要先学习lambda 表达式,学习lambda 表达式呢我们必须了解匿名函数和匿名类,学习匿名函数,我们必须学会委托,这是本文的宗旨.下面开始第一步.在第一步开始之前,我们做点准备工作,建立一个学生类和一个班级类,类结构如下 public class Student { public int Id { get; set; } public int ClassId { get; set; } public string Name { get; set;

C#复习笔记(4)--C#3:革新写代码的方式(查询表达式和LINQ to object(下))

查询表达式和LINQ to object(下) 接下来我们要研究的大部分都会涉及到透明标识符 let子句和透明标识符 let子句不过是引入了一个新的范围变量.他的值是基于其他范围变量的.let 标识符=表达式; 首先展示一个不适用let操作符来使用的按用户名称长度来排序: ... var queryWithoutLet = from user in SampleData.AllUsers orderby user.Name.Length select user; foreach (User us