C# 第一个LINQ 查询

727de8e0f2a4b0537af9dcb4f3be139d.png

我们将先介绍一个示例,这个示例使用 LINQ 创建了一个查询,以便在一个简单的内存对象数组中查找一些数据,并输出到控制台上。

9a75a56613598310dc9180e99924f375.png

试一试:第一个 LINQ 程序:按照下面的步骤在 Visual Studio 中创建示例: 

using System;
using System.Collections.Generic;
using System.Linq; 
using System.Text;
using System.Threading.Text;

(3)在 Program.cs 的 Main() 方法中添加如下代码:

static void Main(string[] args) 
{ string[] names = { "Alonso",  "Zheng",  "Smith",  "Jones",  "Smythe",
"Small",  "Ruiz",  "Hsieh",  "Jorgenson",  "Ilyich",  "Singh",  "Samba",  "Fatimah" };var queryResults =from n in nameswhere n.StartsWith("S") select n;Console.WriteLine("Names beginning with S:");foreach (var item in queryResults) { Console.WriteLine(item); }Console.Write("Program finished, press Enter/Return to continue:"); Console.ReadLine();
}

(4) 编译并运行程序(按下 F5 键即可开始调试),列表中的名称以 S 开头,按照它们在数组中的声明顺序排列,如下所示。

Names beginning with S: 
Smith  
Smythe 
Small 
Singh 
Samba
Program finished, press Enter/Return to continue:

88f8bcf6d3cae2859b7135b88cd789ab.png

按下回车键,结束程序,关闭控制台屏幕。如果使用 Ctrl+F5 组合键(启动时不使用调试功能),就需要按下回车键两次,这会结束程序的运行。

bde05a5fe85f52523ac7ba73ffc45eb0.png

示例的说明

第一步是引用 System.Linq 名称空间,这在创建项目时由 Visual Studio  自动完成:

using System.Ling;

05d984656f36054345798646d1525a1c.png

所有的基本底层系统都支持 System.Linq 名称空间中用于 LINQ 的类。如果在Visual 之外部创建 C# 源文件或编辑以前版本创建的项目,就必须手动添加 using System.Linq 指令。

3c92ba8b5262ec006fcbed5be7a5a841.png

下一步创建一些数据,在本例中就是声明并初始化 names 数组:

string[] names = { "Alonso",  "Zheng",  "Smith",  "Jones",  "Smythe",  "Small",
"Ruiz",  "Hsieh",  "Jorgenson",  "Ilyich",  "Singh",  "Samba",  "Fatimah" };

5dee935d8d8ea3b266422dbbf0265496.png

这些数据很少,很适合用于查询结果比较明显的示例。程序的下一部分是真正的 LINQ 查询语句:

var queryResults =from n in nameswhere n.StartsWith("S") select n;

9604cd37b3fb5c45302639f3d23ed0d9.png

这是一个看起来比较古怪的语句。它不像是C#语言,实际上 from.….where….select 语法类似于 SQL 数据库查询语言。但这个语句不是 SQL,而是 C#,在 VS中输入这些代码时,from、where 和 select会突出显示为关键字,这个古怪的语法对编译器而言是完全正确的。

a954e491386940edb281dc3d12b244d3.png

这个程序中的 LINQ 查询语句使用了 LINQ 声明性查询语法:

var queryResults =from n in nameswhere n.StartsWith("S") select n;

该语句包括4个部分:以 var 开头的结果变量声明,使用查询表达式给该结果变量赋值,查询表达式包含 from 子句、where 子句和 select 子句。

 微信公众号 

DotNet讲堂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1小时赚300块,不打代码帮人做个吃鸡网页 [IVX实战第3篇]

作者简介 作者名:1_bit 简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者。15-16年曾在网上直播,带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息,迷茫的你会找到答案。 实战目录 1…

ArcGIS10.6中,在3D分析工具中创建视线之后,怎么将其删除?

如下图所示, 为3D分析工具条: 在3D分析中创建的线,例如做剖面图是插入的线,该怎样删除呢? 如下图所示。 删除方法是,先使用如下选择工具,然后双击线条,再按delete键。

RPC的原理总结

一.RPC的引入 早期单机时代,一台电脑上运行多个进程,大家各干各的,老死不相往来。假如A进程需要一个画图的功能,B进程也需要一个画图的功能,程序员就必须为两个进程都写一个画图的功能。这不是整人么?于是就…

怎样实现MathType中带箭头向量的输入

2019独角兽企业重金招聘Python工程师标准>>> 一个向量可以有多种记法,如记作粗体的字母(a),或在字母顶上加一小箭头→,或在字母下加波浪线~。如果给定向量的起点(A)和终点&#xff0…

1小时零基础赚一千,教你完成图书管理系统,不用打代码绝对学得会![完整全站教学 IVX 实战第四篇]

作者简介 作者名:1_bit 简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者。15-16年曾在网上直播,带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息,迷茫的你会找到答案。 必看提示 项…

在河北当中学老师用不用考计算机,河北省教育厅出台新方案 师范生当教师也需考证...

保存到相册师范生当教师也需考证啦省教育厅公布方案,暑期后入学师范生要当老师都得拿教师资格证今年暑期后入学的师范类专业学生,申请教师资格需参加统一的教师资格考试。昨日,省教育厅官网公布《河北省中小学和幼儿园教师资格考试改革试点工…

案例:无人船测量点位数据+ArcGIS 10.6软件生成三维水下地形的两种方法

通常情况下,采用无人船进行水下地形测量,得到的是离散的,具有点号、日期、时间、东坐标(E)、北坐标(N)、水面高程、水下高程和水深等信息的点位数据,该数据一般由航带点位数据加水岸线组成,如下图所示: 原始点位数据格式如下: 下面讲解在ArcGIS软件中生成三维水下地…

Flutter之Align

1、Align介绍 Align的作为一个参数,设置子child的对齐方式,比如居中,左上,右下等多个对齐方向 2、部分源码和功能 const Align({Key key,this.alignment Alignment.center,this.widthFactor,this.heightFactor,Widget child,}) …

聊一聊容器生命周期

容器生命周期上图已经非常清晰地阐述了容器的生命周期&#xff0c;接下来就简单介绍下相关操作指令。创建容器docker create --name <container-name> <image-name>创建容器并等待运行。运行容器docker run -d --name <container-name> <image-name>其…

Android SQLite (一) 数据库简介

大家好&#xff0c;今天来介绍一下SQLite的相关知识&#xff0c;并结合Java实现对SQLite数据库的操作。 SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准&#xff0c;并且可以在所有主要的操作系统上运行。 SQLite由以下几个部分组成&#…

租号显示服务器爆满怎么办,租号器环境异常怎么解决

玩网络游戏出现环境异常&#xff0c;怎么办…网络连接上但上不了网的原因以及相应的解决办法。一、检查是否密码错误输入连接密码的时候&#xff0c;如果密码比较长有可能会输错密码&#xff0c;所以建议大家再输入一次密码。如果有可能&#xff0c;直接使用复制粘贴的方式输入…

零基础“复刻”经典飞机大战小程序游戏【一篇文使用 IVX 轻松实战5】

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。 必看提示 项…

【无人机组装与调试】第一章 概述

【无人机组装与调试】系列课程全集&#xff1a; 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型、需要的器材工具材料 第五章 无人机遥控器 第六章 电调、电池、电机 1.1 什么是无人机&#xff1f; 无人驾驶飞机是…

Flutter之Center

1、Center介绍 Center将子控件放在其内部中心&#xff0c;里面只能放一个child&#xff0c;但是child里面可以放Container Center继承勒Align&#xff0c;然后Align默认是center. 2、测试代码 测试1、 overrideWidget build(BuildContext context) {return MaterialApp(title…

【Cisco Packet Tracer】综合实践题-校园网仿真

本题的目的&#xff1a; 理论与实践结合&#xff1a;Cisco Packet Tracer是一个网络模拟软件&#xff0c;通过模拟真实的网络环境&#xff0c;可以让学生在实际操作中加深对理论知识的理解和掌握。问题解决能力&#xff1a;综合实验题可以考察学生分析和解决问题的能力。在实验…

C# =符号的使用

前言&#xff1a;-. 读作 goes to&#xff0c;是C#3.0的新内容&#xff1b;-. 字段定义时设置{ get; set; }属性的作用&#xff1a;主要是为了外部访问的安全性封装字段&#xff0c;get set你自己可以设置限制条件&#xff0c;尤其是wpf绑定时&#xff0c;没有get set属性&…

所有方向你要的资料干货这都有,从入门到实战!【CSDN宝藏资料图鉴第一期】

前言 CSDN 是全球知名的开发者社区&#xff0c;创建于1999年&#xff0c;经过20来年的知识文档积累已然成为中文开发者的知识宝库&#xff1b;从基础的法入门到蜕变实战案例、从神秘前沿技术到清晰的实践步骤&#xff0c;可以说CSDN是你找寻资料的最佳宝库&#xff0c;只要你想…

判断一个字符串是否为另外一个字符串旋转之后的字符串。

★判断一个字符串是否为另外一个字符串旋转之后的字符串。例如&#xff1a;给定s1 &#xff1d; AABCD和s2 BCDAA&#xff0c;返回1&#xff0c;给定s1abcd和s2ACBD&#xff0c;返回0.AABCD左旋一个字符得到ABCDA AABCD右旋一个字符得到DAABC AABCD左旋两…

Flutter之Padding

1 、Padding介绍 Padding用来为子元素添加填充&#xff0c;也就是指定子元素与容器边界的距离&#xff0c;作用基本上与Android中ViewGroup的padding属性差不多 const Padding({Key key,required this.padding,Widget child,}) : assert(padding ! null),super(key: key, chil…

其实python面向对象3分钟就可以入门(14)

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…