返回顶部
首页 > 资讯 > 精选 >LINQ有哪些强大功能
  • 752
分享到

LINQ有哪些强大功能

2023-06-17 22:06:33 752人浏览 泡泡鱼
摘要

这篇文章主要介绍了LINQ有哪些强大功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。LINQ,即Language Integrated Query。很多人熟悉sql语言,用

这篇文章主要介绍了LINQ有哪些强大功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

LINQ,即Language Integrated Query。很多人熟悉sql语言,用它来操作数据库非常方便。现在在C#3.0中也可以使用相同的语法来操作各种数据,包括数组,文件,数据库等。由于LINQ的东西比较多,本文主要介绍LINQ。

下面看一个例子,程序员就应该拿代码说话:

class Program  ...{  static void Main(string[] args)  ...{  string[] names=...{"Everett", "Albert", "George", "Harris", "David" };  var items=from name in names  where name.Length>=6  orderby name  select name.ToUpper();  foreach(var item in items)  Console.WriteLine(item);  }  }

是不是对上面的from,where,orderby等单词很熟悉,我们可以很轻松的像查询数据库一样查询某些数组。其实上述表达式等价于下面这样的写法:

  1. var items=names.Where(name=>name.Length>=6).
    OrderBy(name=>name).Select(name=>name.ToUpper());  

那么我们为什么能在数组上应用这些方法呢,本来数组上没有这些方法啊?回忆一下我们原来说过的内容,扩展方法,对,我们在这里看到扩展方法的用武之地了。而且我们也看到了Lambda表达式的应用使得语句更加简洁,易懂。这些扩展方法定义在哪里呢?我们可以在System.LINQ这个程序集里面看到这样的定义:

namespace System.LINQ ...{   public static class Enumerable ...{   public static IEnumerable<T> Where<T>(   this IEnumerable<T> source, Func<T, bool> predicate) ...{    foreach (T item in source)   if (predicate(item)  }  yield return item;   }  }  }

这里我们可以清晰的看到许多this关键字,这些正是扩展方法的标志。若果我们对Lambda表达式不是很熟悉的化,上面的LINQ语句还可以进一步转化成委托的形式。

Func<string, bool> filter = delegate (string s) ...{return s.Length >=6;};   Func<string, string> extract = delegate (string s) ...{return s; };   Func<string, string> project = delegate (string s) ...{return s.ToUpper(); };   var items = names.Where(filter) .OrderBy(extract) .Select(project);

有一个问题,我们会注意到items前面是用var做它的类型,那么有没有提出这样的疑问,这个var到底是什么类型呢?我们仔细看一下那个System.LINQ程序集,就会发现扩转方法返回的是IEnumerable<T>类型,一个泛型接口,没错var就是这个泛型接口。还有一个问题就是当names满足什么条件时,我们可以应用LINQ表达式进行查询。这一点还要从那个程序集上仔细观察。我们会发现有一个source参数,根据扩展方法的语法我们知道这个source参数就是调用了这个方法的对象。那么我们可以推断出这个对象要能转换成IEnumerable<T>。那什么类型可以成功转换呢?很显然只要实现了 IEnumerable<T>这个泛型接口的类型都可以转换。譬如数组类型,List<T>,等等。当我们还可以自己定义类型只要实现了这个接口就可以用LINQ对这个类型进行操作。

感谢你能够认真阅读完这篇文章,希望小编分享的“LINQ有哪些强大功能”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: LINQ有哪些强大功能

本文链接: https://lsjlt.com/news/293659.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • LINQ有哪些强大功能
    这篇文章主要介绍了LINQ有哪些强大功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。LINQ,即Language Integrated Query。很多人熟悉SQL语言,用...
    99+
    2023-06-17
  • Javascript的强大功能有哪些
    这篇文章主要介绍“Javascript的强大功能有哪些”,在日常操作中,相信很多人在Javascript的强大功能有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java...
    99+
    2024-04-02
  • xp有哪些强大功能技巧
    这篇文章主要介绍了xp有哪些强大功能技巧,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、恢复被破坏的WinXP系统文件  如果WindowsXP的系统文件被病毒或其它原因破...
    99+
    2023-06-14
  • Bash 究竟有哪些强大的功能?
    Bash是一种非常流行的Shell编程语言,它是Linux和Unix系统中最常用的Shell之一。Bash拥有许多强大的功能,使得它成为了许多开发者和系统管理员的首选。下面我们将介绍一些Bash的强大功能。 命令行历史 Bash可以记录...
    99+
    2023-08-31
    bash numy http
  • LINQ查询表达式功能有哪些
    本篇内容主要讲解“LINQ查询表达式功能有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“LINQ查询表达式功能有哪些”吧!LINQ查询表达式是实现LINQ功能的重要部分,一般是通过相关关键字...
    99+
    2023-06-17
  • es6增强的功能有哪些
    本篇内容介绍了“es6增强的功能有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!es6增强的功能:1、解构赋值,允许按照一定的模式,从数...
    99+
    2023-07-04
  • 性能强大的PHP类库有哪些
    这篇文章主要为大家展示了“性能强大的PHP类库有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“性能强大的PHP类库有哪些”这篇文章吧。本文提供了20个非常有用的PHP类库的名称和下载地址。这...
    99+
    2023-06-17
  • es6增强了哪些功能
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。ES6对原有的语法进行增强1,解构赋值es6允许按照一定的模式,从数组或对象中提取值,给变量进行赋值,称为解构赋值。解构赋值在代码书写上简单易懂,语义清晰...
    99+
    2022-11-22
    javascript ES6
  • 你知道 Python 中的 IDE 有哪些强大的调试功能吗?
    Python 是当今世界最为流行的编程语言之一,其简洁易学、灵活多变的特点赢得了众多开发者的青睐。Python 有着丰富的第三方库和工具,其中 IDE(Integrated Development Environment,集成开发环境)是开...
    99+
    2023-07-30
    数组 文件 ide
  • J2SE 1.4.2增强了哪些功能
    本文小编为大家详细介绍“J2SE 1.4.2增强了哪些功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“J2SE 1.4.2增强了哪些功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。j2se 1.4.2增强功...
    99+
    2023-06-03
  • 强大的JavaScript技巧有哪些
    这篇文章给大家分享的是有关强大的JavaScript技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 全部替换我们知道 string.replace() 函数仅替换第...
    99+
    2024-04-02
  • 使用类型增强功能的方法有哪些
    使用类型增强功能的方法有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体配置信息配置全局jsconfig.json我们习惯在wepback内配置相关路径别...
    99+
    2023-06-07
  • MySQL重大新增的功能有哪些
    这篇文章主要讲解了“MySQL重大新增的功能有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL重大新增的功能有哪些”吧!一、MySQL的天然短板...
    99+
    2024-04-02
  • LINQ技术有哪些
    这篇文章主要介绍了LINQ技术有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。.NET Language-Integrated Query(LINQ,语言集成查询)是微软...
    99+
    2023-06-17
  • LINQ有哪些缺点
    本篇内容介绍了“LINQ有哪些缺点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!LINQ前景目前的LINQ还是非常之不完善的,不论是LINQ...
    99+
    2023-06-17
  • LINQ架构有哪些
    这篇文章主要介绍“LINQ架构有哪些”,在日常操作中,相信很多人在LINQ架构有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”LINQ架构有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!LINQ是...
    99+
    2023-06-17
  • bpython 功能强大的Python shell
    Python是一个非常实用、流行的解释型编程语言,其优势之一就是可以借助其交互的shell进行探索式地编程。你可以试着输入一些代码,然后马上获得解释器的反馈,而不必专门写一个脚本。但是Python自带的sh...
    99+
    2022-06-04
    功能强大 bpython shell
  • 有哪些强大的HTML5 API函数
    本篇内容介绍了“有哪些强大的HTML5 API函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1.&...
    99+
    2024-04-02
  • LINQ To XML类有哪些
    本篇内容介绍了“LINQ To XML类有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是LINQ To XMLLINQ to XM...
    99+
    2023-06-17
  • bootstrap有哪些功能
    这篇文章主要介绍“bootstrap有哪些功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“bootstrap有哪些功能”文章能帮助大...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作