当前位置: 首页 > news >正文

黑龙省建设厅网站首页seo初学教程

黑龙省建设厅网站首页,seo初学教程,郑州高端网站定制建设,百业网免费发布信息LINQ#xff1a;最终统治了所有的语言#xff01;让我们看看LINQ如何彻底改变了.NET中访问数据的方式.NET与其他技术栈的不同之处之一绝对是LINQ#xff0c;它是Language Integrated Query的首字母缩写。实际上#xff0c;它是随.NET Framework 3.5和Visual Studio 2008引入… LINQ最终统治了所有的语言让我们看看LINQ如何彻底改变了.NET中访问数据的方式.NET与其他技术栈的不同之处之一绝对是LINQ它是Language Integrated Query的首字母缩写。实际上它是随.NET Framework 3.5和Visual Studio 2008引入的它是第一个独立于体系结构并集成在C和Visual Basic语言中的框架。借助LINQ我们可以使用独立于各种源的单个编程模型来查询和操作数据。为了更好地理解它是什么我们必须一步步的看下他的发展历程。在C的第一个版本中我们必须使用for或foreach循环来遍历一个集合正如我们所知该集合实现IEnumerable接口例如在其中找到一个特定的对象。以下代码返回公司年龄在19至36岁20至35岁之间的所有客户class Customer { public int CustomerID { get; set; } public String CustomerName { get; set; } public int Age { get; set; } } class Program { static void Main(string[] args) { Customer[] customerArray { new Customer() { CustomerID 1, CustomerName Joy, Age 22 }, new Customer() { CustomerID 2, CustomerName Bob, Age 45 }, new Customer() { CustomerID 3, CustomerName Curt, Age 25 },};Customer[] customers new Customer[10]; int i 0; foreach (Customer cst in customerArray) { if (cst.Age 19 cst.Age 36) { customers[i] cst; i; }} } } 有什么不同的方法让我们尝试从“委托”的概念开始逐步进行开发。delegate和返回的类型的方法的引用类型。它“委托”它旨在执行代码的方法我们可以用这种方式声明它public delegate bool Operations(int number); 此委托可以指向所有接受输入整数并返回布尔值的方法。例如假设在CustomerOperations类中有一个方法public bool CustomerAgeRangeCheck(int number) {return number 19 number 36; } 我们可以注册一个或多个将在执行委托时执行的方法Operations op new Operations(CustomerOperations.CustomerAgeRangeCheck); 或者简单地 Operations op CustomerOperations.CustomerAgeRangeCheck; 因此我们可以使用委托在这种情况下它将返回true op(22); 委托用于将方法作为参数传递给其他方法事件处理程序和回调是通过委托调用的方法的示例。C2.0引入了匿名委托您现在可以使用匿名方法来声明和初始化委托。例如我们可以这样写delegate bool CustomerFilters(Customer customer);class CustomerOperations {public static Customer[] FindWhere(Customer[] customers, CustomerFilters customerFiltersDelegate){int i 0;Customer[] result new Customer[6];foreach (Customer customer in customers)if (customerFiltersDelegate(customer)){result[i] customer;i;}return result;} }class Program {static void Main(string[] args){Customer[] customers {new Customer() { CustomerID 1, CustomerName Joy, Age 22 },new Customer() { CustomerID 2, CustomerName Bob, Age 45 },new Customer() { CustomerID 3, CustomerName Curt, Age 25 },};Customer[] filteredCustomersAge CustomerOperations.FindWhere(customers, delegate (Customer customer) //Using anonimous delegate{return customer.Age 19 customer.Age 36;});} } 使用C2.0我们的优势是可以使用匿名委托在不同条件下进行搜索而无需使用for或foreach循环。例如我们可以使用上一个示例中相同的委托函数来查找“ CustomerID”为3或名称为“ Bob”的客户Customer[] filteredCustomersId CustomerOperations.FindWhere(customers, delegate (Customer customer) {return customer.CustomerID 3;});Customer[] filteredCustomersName CustomerOperations.FindWhere(customers, delegate (Customer customer) {return customer.CustomerName Bob;}); 随着C的发展从3.x版本开始Microsoft团队引入了新功能使代码更加紧凑和易读。这些直接支持LINQ来查询不同类型的数据源并获得产生单个指令的元素。这些功能是-在VAR结构一个隐式类型的局部变量。它是强类型化的因为已经声明了类型本身但是由编译器根据分配给它的值使用类型推断来确定类型。以下两个语句在功能上等效var customerAge 30; // Implicitly typed. int customerAge 30; // Explicitly typed. -使用对象初始化程序您可以在对象创建期间将值分配给对象的全部或某些属性而无需在分配指令行之后调用构造函数。Customer customer new Customer { Age 30, CustomerName Adolfo }; 与以下代码不同在前一种情况下所有内容都被视为单个操作。Customer customer new Customer(); customer.Age 30; customer.CustomerName Adolfo; 匿名类型由编译器构建的只读类型只有编译器知道它。但是如果程序集中的两个或多个匿名对象初始化程序具有相同顺序的属性序列并且具有相同的名称和类型则编译器会将这些对象视为相同类型的实例。匿名类型是将查询结果中的一组属性临时分组的好方法而不必定义单独的命名类型。 var customer new { YearsOfFidelity 10, Name Francesco}; -扩展方法使您可以将方法“添加”到现有类型而无需创建新的派生类型重新编译或修改原始类型。扩展方法是静态方法但由于引入了语法糖因此被称为因为它们是扩展类型上的实例方法。public static class StringExtensionMethods {public static string ReverseString(this string input){if (string.IsNullOrEmpty(input)) return ;return new string(input.ToCharArray().Reverse().ToArray());} } 扩展方法必须在静态类中定义。第一个参数表示要扩展的类型并且必须以关键字this开头其他参数则不需要它。Console.WriteLine(Hello.ReverseString()); //olleH 请注意在方法调用中不得指定第一个参数该参数以this修饰符开头。Lambda表达式可作为可变的或作为在一方法调用中的参数被传递匿名函数。customer customer.Age 19 customer.Age 36; 运算符称为lambda运算符而customer是函数的输入参数。lambda运算符右侧的部分代表函数的主体及其返回的值在这种情况下为布尔值。在LINQ的引入中我们终于有了C3.5版本。简而言之我们可以说LINQ是IEnumerable 和IQueryable 接口的扩展方法库它使我们能够执行各种操作如过滤进行投影聚合和排序。我们有几种可用的LINQ实现•LINQ到对象内存中对象集合•LINQ到实体实体框架•LINQ to SQLSQL数据库•LINQ to XMLXML文档•LINQ到数据集ADO.Net数据集•通过实现IQueryable接口其他数据源在前面的示例中数组用作数据源因此隐式支持通用接口IEnumerable T 。支持IEnumerable或其派生接口的类型例如通用IQueryable 接口称为可查询类型使我们可以直接执行LINQ查询。如果数据源尚未以可查询类型存储在内存中则LINQ提供程序必须将其表示为可查询类型。正如我们所说LINQ查询主要基于.NET Framework 2.0版中引入的通用类型。这意味着例如如果尝试将Customer对象添加到List对象则在编译时将生成错误。使用通用集合很容易因为不需要在运行时强制转换类型。如果愿意可以使用前面提到的var关键字来避免通用语法在下面的示例中该关键字要求编译器通过检查from子句中指定的数据源来推断查询变量的类型。因此让我们看看如何能达到同样的效果在前面的代码中我们获得了使用匿名委托使用LINQ到对象查询该变种构造和lambda表达式var filteredCustomersAge customers.Where(c c.Age 19 c.Age 36); 这种语法称为方法语法。在下一个示例中我们将使用查询语法Query Syntax该语法是为那些已经了解SQL语言并且因此会喜欢这种方法的人引入的var filteredCustomersAge from customer in customerswhere customer.Age 19 customer.Age 36select customer; 查询语法和方法语法在语义上是相同的许多人发现查询的语法更简单更易于阅读 在查询语法中LINQ查询运算符在编译时转换为对相关LINQ扩展方法的调用。在下一篇文章中我们将继续讨论LINQ我们将讨论IQueryable 接口其相关的LINQ扩展方法以及与IEnumerable 接口的区别。与远程数据库一样我们还将看到LINQ与内存外集合的数据源一起使用。
http://www.pierceye.com/news/554149/

相关文章:

  • 盐城做企业网站多少钱网页设计个人总结800
  • 北京做兼职网站温州网站建设模板下载免费
  • 推进门户网站建设方案wordpress插件自动更新
  • 学院网站建设成效做网站需要什么功能
  • o2o手机网站建设技术网站设计师专业
  • 传媒网站建设方案wordpress开源博客系统最新版
  • 三合一网站一般多少钱浙江省和住房建设厅网站
  • 网站开发背景知识论文网页设计表格
  • 广州优秀网站建设怎么寻找国外客户资源
  • 松江新城投资建设集团有限公司网站华能电子商务平台
  • 网站建设设计制作公司微网站微商城
  • 长宁企业网站建设个人做外贸怎么做
  • 饲料 东莞网站建设免费推广app
  • 手机平台网站开发品牌网站设计首选
  • 哪些网站可以做调查赚钱图片生成软件
  • 网站空间的管理wordpress vip system
  • 新思维网站北京住房建设部网站首页
  • 温州网站制作套餐麒麟网站建设
  • 淘宝接单做网站wordpress能做企业网站吗
  • 网站建设运营公众号运营合同app网站开发书籍下载
  • 网站seo流程网站开发开账务处理
  • 婚介网站方案长沙网络公司电话
  • 自助网站搭建系统做网站接电话一般要会什么
  • 雷州网站建设公司网站建设与管理说课ppt
  • 问答类网站怎么做wordpress 调取页面缩略图
  • 做电影资源网站手机版wordpress实例配置
  • 广西网站建设方案品牌官网方案
  • 游戏工作室网络组建方案seo81
  • 搭建个人网站的步骤温州专业微网站制作价格
  • 网站怎么做充值系统php图书管理系统网站开发