LinQ C#3.0

LINQ (Language-Integrated Query,语言集成查询)。

LINQ to Objects、LINQ to SQL、LINQ to DataSet和LINQ to XML,它们分别查询和处理对象数据(如集合)、关系数据(如SQL Server数据库等)、DataSet对象数据和XML结构数据。    主要对数据进行操作

-----------------------------------------------------

LINQ 语法基础——C#3.0

-------------------------------------------

使用var创建隐型局部变量

Int number=2008;    String [] strs=new string [5];                           UserInfo ui=new UserInfo();
var number=2008;    var strs=new string[]{“2008”,”08”,”05”,”20”};             var ui=new UserInfo();

var关键字指示编译器能够根据变量的初始化表达式推算出该变量的类型,即使用var关键字声明变量时隐藏了该变量的类型。Var关键字可以在以下四种情况下使用。

1.声明局部变量;

2.For语句中;

3.Foreach语句中;

4.Using 语句中;

对象初始化器

使得开发人员可以不调用类的构造函数就能够以声明性方式创建一个新的对象,并设置该对象的各个属性的值。

UserInfo ui = new UserInfo
        {
            Username = "张三",
            Useraddr = "武汉",
            Userage = "23",
            Usersex = "男",
            Usertel = "027-50459016"       //userInfo里面有的属性可以直接设置
        };

集合初始化器

合初始化器用来初始化一个集合,它由一系列元素组成,并封闭于“{”和 “}”标记内。

 List<int> numbers = new List<int> () { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //可以在{}里面初始化一个集合

创建匿名类型对象

使用new操作符和匿名对象初始化器能够创建一个新的对象。

//创建匿名类型的对象
        var user = new { ID = 1, USERNAME = "张三", USERSEX = "男", USERADDR = "武汉" };

创建隐形数组

隐形数组和匿名类型对象比较相似。隐形数组使用var关键字和数组初始化器创建,且数组初始化器中的元素的数据类型必须都能够隐式转换为同一个数据类型(不能为null)的元素

var numbers = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 var strs = new[] { "he", "she", "it" };

Lambda表达式  :使用委托的位子就可以使用Lambda表达式

Lambda表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。Lambda表达式由输入参数、Lambda运算符(=>)和表达式(或语句块)构成。Lambda表达式的基本形式如下:

(input parameters) => expression

input parameters表示输入参数,expression表示表达式。输入参数位于Lambda运算符的左边,表达式或语句块位于Lambda运算符的右边,Lambda运算符 =>读作 “goes to”

    //声明一个委任 ,跟Clss同级
    delegate int MyDelegate(int i);   delegate void Md2();
    class Program
    {
        static void Main(string[] args)
        {
           MyDelegate md = delegate(int x)     //普通的委任
            {
                return x * x;
            };
            MyDelegate md = (x) => x * x;    //Lambda表达式
            int a = md(3);
            Console.WriteLine(a);        Md2 md2 = () => { Console.WriteLine("Hello!!"); }; //Lambda表达式       md2();
        }
    } 
     (x , y) =>  {   int  result = x*y;  Response.Write(result.ToString());     }    //多语句时使用语句块{}

哪里用的上:   例如:    集合里面的Find(),FindAll()的参数就是委托

  List<int> ll = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 0 };

            foreach (var item in ll.FindAll((x) => x % 2 == 0))
            {
                Console.WriteLine(item);

            }
时间: 2024-08-05 19:36:51

LinQ C#3.0的相关文章

类型“System.Data.Linq.DataContext”在未被引用的程序集中定义。必须添加对程序集“System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。

解决方法:添加System.Data.Linq.dll引用 http://www.cnblogs.com/m84641693/archive/2010/07/26/1785100.html http://www.myexception.cn/c-sharp/1406525.html

.NET深入解析LINQ框架(一:LINQ优雅的前奏)

阅读目录: 1.LINQ简述 2.LINQ优雅前奏的音符 2.1.隐式类型 (由编辑器自动根据表达式推断出对象的最终类型) 2.2.对象初始化器 (简化了对象的创建及初始化的过程) 2.3.Lambda表达式 (对匿名方法的改进,加入了委托签名的类型推断并很好的与表达式树的结合) 2.4.扩展方法 (允许在不修改类型的内部代码的情况下为类型添加独立的行为) 2.5.匿名类型 (由对象初始化器推断得出的类型,该类型在编译后自动创建) 2.6.表达式目录树(用数据结构表示程序逻辑代码) 3.LINQ

几种查询方法(lambda Linq Enumerable静态类方式)

1.需要一个数据源类: using System; using System.Collections.Generic; namespace Linq { public class Student { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } public class Data { public static List<Student> studentLi

c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结【转载】

引用:http://blog.csdn.net/attilax/article/details/42014327 c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系1 2. paip.------------SDK2.0功能-------------2 2.1. 泛型:2 3. --------------sdk3.0  增加了以下功能..2 3.1. LINQ 3 4.  ----------sdk4

db4o发布7.2,出现.NET 3.5版本,支持LINQ

db4o发布7.2,出现.NET 3.5版本,支持LINQ Db4Object刚刚发布了db4o的7.2beta,除了以前支持如下的平台:.NET 1.1,.NET 2.0,Mono外,现在还支持.NET 3.5了.当然支持.NET 3.5,最主要的时候要来支持LINQ. 关于LINQ,我稍后再讲.现在讲讲7.2中最大的新特性--Transparent Activation(透明激活).关于7.0版本的其他新特性,可以参看我在InfoQ上的文章<Db4Objects发布Db4o 7.0,支持透明

Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结

Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系 1 2. paip.------------SDK2.0功能------------- 2 2.1. 泛型: 2 3. --------------sdk3.0  增加了以下功能.. 2 3.1. LINQ 3 4.  ----------sdk4.0 新加功能------------ 3 5. ].Net4.5的五项强大新特性 3 5.

2017-6-1 Linq 基础查询 (增删改查)

用小型人员管理系统的项目实战来练习linq的基础增删改查: using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// users 的摘要说明 /// </summary> public partial class users { public string sexstr { get { return Convert.ToBoolean(

C#高级编程六十三天----并行LINQ

并行LINQ .NET4在System.Linq命名空间中包含一个新类ParallelEnumerable,可以分解查询的工作使其分布在多个线程上.尽管Enumerable类给IEnumerable<T>接口定义了扩展方法,但ParallelEnumerable类的大多数扩展方法是ParallelQuery<TSource>类的扩展.一个重要的例外是AsParallel()方法,它扩展了IEnumerable<TSource>接口,返回ParallelQuery<

Linq增删改查字段扩展以及一个小练习

字段扩展: 因为Linq已经自动生成了一个对应表明的类来封装字段,所以扩展的时候要建立一个名字相同的类并在class后面加上partial进行扩展.扩展的时候this代表这个表,通过this可以.出这个表中的列名以及相关的外键表的表名. Linq基本操作: 首先要创建Linq类,把相关的表拖进VS. 然后实例化Linq类,通过类名.表名.ToList();来获取所有数据..AsQueryable():是获得这个方法但是还没有执行. Linq高级查询: 通过类名.表名.where(r=>r.XXX