返回顶部
首页 > 资讯 > 精选 >Linq Lambda表达式怎么使用
  • 627
分享到

Linq Lambda表达式怎么使用

2023-06-17 21:06:00 627人浏览 独家记忆
摘要

本篇内容介绍了“Linq Lambda表达式怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#3.0时代的Linq查询语句在C#3.

本篇内容介绍了“Linq Lambda表达式怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

C#3.0时代的Linq查询语句

C#3.0中我们又有了改善代码的新工具

匿名委托很不错,但是我们希望有更简单的,更容易维护的代码。C#3.0提供了Linq Lambda表达式的概念,你可以把Linq Lambda表达式是我们应用匿名委托的捷径,下面是用Linq Lambda表达式重写的查询:

static IEnumerable<Employee> GoldWatch(IEnumerable<Employee> employees) {  return Filter(employees,  employee => employee.Years>3  );  }     static IEnumerable<Employee> SalesForce(IEnumerable<Employee> employees) {  return Filter(employees,  employee => employee.Department=="Sales"  );  }

这段代码相当简单而且也很容易维护,但还存在一些问题。
◆GoldWatch(employees)
◆SalesForce(employees)

当你看到这样的调用的时候就会意识到这个问题,从OO的视角来看,我们已经熟悉了noun.verb()这样的调用形式,理想情况下,我们希望用这样的语法能查询一个集合
◆employees.GoldWatch()
◆employees.SalesForce()

有人可能会定义一个新的Employee类,它实现了IEnumerable<Employee>。但是问题是,我们的用户可能会希望是用别的 IEnumerable<Employee>实现,比如Employee[]和List<Employee>。

C#3.0用扩展方法(Extension method)解决这个方法:

static IEnumerable<Employee> Filter(this IEnumerable<Employee> employees, Choose choose) {  foreach (Employee employee in employees) {  if (choose(employee)) {  yield return employee;  }  }  }     static IEnumerable<Employee> GoldWatch(this IEnumerable<Employee> employees) {  return employees.Filter(employee => employee.Years>3);  }   static IEnumerable<Employee> SalesForce(this IEnumerable<Employee> employees) {  return employees.Filter(  employee => employee.Department=="Sales");  }

这看起来很好了,但如果我们想象Employee一样查询Customer呢?或者说,查询我们的存货呢?

不用为每一个类单独写一个Filter方法,我们可以将Filter写成一个通用函数:

delegate bool Choose<T>(T t);   static IEnumerable<T> Filter<T>(this IEnumerable<T> items, Choose<T> choose) {  foreach (T item in items) {  if (choose(item)) {  yield return item;  }  }  }   //现在我们可以筛选我们希望的任何类型了!   int [] a = new int [] {1,2,3,4,5};  a.Filter(i => i==1 || i==3);   //这个筛选方法是如此有用且通用,C#里已经内置了一个称为Where的实现  //在PDC上展示的实际的Where实现   public delegate T Func<A0, T>(A0 arg0);   public static  IEnumerable<T> Where<T>(this IEnumerable<T> source,  Func<T, bool> predicate) {  foreach (T element in source) {  if (predicate(element)) yield return element;  }  }

“Linq Lambda表达式怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Linq Lambda表达式怎么使用

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

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

猜你喜欢
  • Linq Lambda表达式怎么使用
    本篇内容介绍了“Linq Lambda表达式怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#3.0时代的Linq查询语句在C#3....
    99+
    2023-06-17
  • LINQ中Lambda表达式怎么用
    小编给大家分享一下LINQ中Lambda表达式怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linq有很多值得学习的地方,这里我们主要介绍LINQ Lamb...
    99+
    2023-06-17
  • LINQ教程之使用Lambda表达式
    C#3.0(.NET3.5)中引入了Lambda表达式和LINQ。Lambda表达式是使用一些特殊语法表示匿名方法的较短方法。 一、最基本的Lambda表达式语法如下: (参数列表)...
    99+
    2024-04-02
  • Linq Lambda表达式是什么
    本篇内容介绍了“Linq Lambda表达式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linq Lambda表达式许多标准查询操作...
    99+
    2023-06-17
  • 【javaSE】 Lambda表达式与Lambda表达式的使用
    文章目录 🌳Lambda表达式的背景🚩Lambda表达式的语法🚩函数式接口 🎋Lambda表达式的基本使用🎄...
    99+
    2023-09-15
    开发语言 java Lambda表达式 源码
  • C# LINQ查询表达式及对应LAMBDA表达式的用法
    目录首先先让我们看一下什么是LINQ查询表达式和Lambda表达式:什么是“延迟执行”?还是上面例子中的查询:并行linqC#编程语言非常优美,我个人还是非常赞同的。特别是在学习一段...
    99+
    2024-04-02
  • java lambda表达式怎么使用
    Java lambda表达式是Java 8引入的一种新特性,它可以简化代码的编写,尤其是在处理函数式接口时非常方便。下面是使用lam...
    99+
    2023-09-23
    java
  • Java Lambda表达式怎么使用
    这篇文章主要介绍“Java Lambda表达式怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java Lambda表达式怎么使用”文章能帮助大家解决问题。一、背景Lamb...
    99+
    2023-06-29
  • Linq lambda表达式的示例分析
    小编给大家分享一下Linq lambda表达式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linq lambda表达式了解过C# 3.0的新特性的话应...
    99+
    2023-06-17
  • 如何使用Linq Lambda表达式替换匿名方法
    小编给大家分享一下如何使用Linq Lambda表达式替换匿名方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Linq Lambda表达式Linq Lambda表达式是一种语言功能,在许多方面类似于匿名方法。事实上,如果...
    99+
    2023-06-17
  • C# Lambda表达式怎么用
    这篇文章主要为大家展示了“C# Lambda表达式怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C# Lambda表达式怎么用”这篇文章吧。C#语言还是比较常见的东西,这里我们主要介绍C#...
    99+
    2023-06-17
  • LINQ表达式怎么写
    小编给大家分享一下LINQ表达式怎么写,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!LINQ表达式简介OO(面向对象)以外的疆域:信息的访问与整合。关系数据库与X...
    99+
    2023-06-17
  • 怎么在Java8中使用Lambda表达式
    怎么在Java8中使用Lambda表达式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. lambda表达式介绍lambda表达式是Java8提供的新特性之一,也可以称之为闭...
    99+
    2023-06-14
  • C++11的lambda表达式怎么使用
    这篇文章主要讲解了“C++11的lambda表达式怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++11的lambda表达式怎么使用”吧!可变lambda假设有如下vector,保...
    99+
    2023-06-19
  • lambda表达式怎么在Java8中使用
    lambda表达式怎么在Java8中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。lambda 表达式的语法lambda 表达式由参数,->,以及函数体三部分组成。其...
    99+
    2023-05-31
    java8 lambda ava
  • LINQ查询表达式怎么用
    这篇文章主要介绍了LINQ查询表达式怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。from子句负责指定LINQ查询操作中的数据源和范围变量每一个LINQ查询表达式都必须...
    99+
    2023-06-17
  • lambda表达式使用方法
    本篇内容介绍了“lambda表达式使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!package test;import java.u...
    99+
    2023-06-02
  • Java中Lambda表达式怎么用
    这篇文章主要介绍了Java中Lambda表达式怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、前言Lambda表达式是java 8中包含的重要功能之一。Lambda表...
    99+
    2023-06-15
  • Java Lambda表达式怎么应用
    Java 中的 Lambda 表达式是 JDK 8 中引入的一种函数式编程的特性,它可以使代码更简洁、更易读、更易维护。Lambda...
    99+
    2023-10-10
    java
  • 为什么要使用lambda表达式
    这篇文章给大家分享的是有关为什么要使用lambda表达式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言lambda表达式的语法结构:#!/usr/bin/python3 # 可写函数说明s...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作