当前位置: 首页 > 编程日记 > 正文

sqlce wp from查询语句详解

http://msdn.microsoft.com/zh-cn/library/bb383978(v=vs.110).aspx

from 子句(C# 参考)

Visual Studio 2012
其他版本
此主题尚未评级 评价此主题

[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。]

查询表达式必须以 from 子句开头。 另外,查询表达式还可以包含子查询,子查询也是以 from 子句开头。 from 子句指定以下内容:

  • 将对其运行查询或子查询的数据源。

  • 一个本地范围变量,表示源序列中的每个元素。

范围变量和数据源都是强类型。 from 子句中引用的数据源的类型必须为 IEnumerable、IEnumerable<T> 或一种派生类型(如 IQueryable<T>)。

在下面的示例中,numbers 是数据源,而 num 是范围变量。 请注意,这两个变量都是强类型,即使使用了 var 关键字也是如此。

C#
class LowNums
{static void Main(){   // A simple data source.int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };// Create the query.// lowNums is an IEnumerable<int>var lowNums = from num in numberswhere num < 5select num;// Execute the query.foreach (int i in lowNums){Console.Write(i + " ");}}        
}
// Output: 4 1 3 2 0
范围变量

如果数据源实现了 IEnumerable<T>,则编译器可以推断范围变量的类型。 例如,如果数据源的类型为 IEnumerable<Customer>,则推断出范围变量的类型为 Customer 仅当数据源是非泛型 IEnumerable 类型(如 ArrayList)时,才必须显式指定数据源类型。 有关更多信息,请参见 如何:使用 LINQ 查询 ArrayList。

在上一个示例中,num 被推断为 int 类型。 由于范围变量是强类型,因此可以对其调用方法或者在其他操作中使用它。 例如,可以不编写 select num,而编写 select num.ToString() 使查询表达式返回一个字符串序列而不是整数序列。 或者,也可以编写 select n + 10 使表达式返回序列 14、11、13、12、10。 有关更多信息,请参见 select 子句(C# 参考)。

范围变量类似于 foreach 语句中的迭代变量,只是两者之间有一个非常重要的区别:范围变量从不实际存储来自数据源的数据。 范围变量只是提供了语法上的便利,使查询能够描述执行查询时将发生的事情。 有关更多信息,请参见LINQ 查询简介 (C#)。

复合 from 子句

在某些情况下,源序列中的每个元素本身可能是序列,也可能包含序列。 例如,数据源可能是一个 IEnumerable<Student>,其中,序列中的每个 Student 对象都包含一个测验得分列表。 若要访问每个 Student 元素中的内部列表,可以使用复合 from 子句。 该技术类似于使用嵌套的 foreach 语句。 可以向任一 from 子句中添加 where 或 orderby 子句来筛选结果。 下面的示例演示了一个 Student 对象序列,其中每个对象都包含一个表示测验得分的内部整数List 为了访问该内部列表,此示例使用了复合 from 子句。 如有必要,可在两个 from 子句之间再插入子句。

C#
class CompoundFrom
{// The element type of the data source.public class Student{public string LastName { get; set; }public List<int> Scores {get; set;}}static void Main(){// Use a collection initializer to create the data source. Note that // each element in the list contains an inner sequence of scores.List<Student> students = new List<Student>{new Student {LastName="Omelchenko", Scores= new List<int> {97, 72, 81, 60}},new Student {LastName="O'Donnell", Scores= new List<int> {75, 84, 91, 39}},new Student {LastName="Mortensen", Scores= new List<int> {88, 94, 65, 85}},new Student {LastName="Garcia", Scores= new List<int> {97, 89, 85, 82}},new Student {LastName="Beebe", Scores= new List<int> {35, 72, 91, 70}} };        // Use a compound from to access the inner sequence within each element.// Note the similarity to a nested foreach statement.var scoreQuery = from student in studentsfrom score in student.Scoreswhere score > 90select new { Last = student.LastName, score };// Execute the queries.Console.WriteLine("scoreQuery:");// Rest the mouse pointer on scoreQuery in the following line to // see its type. The type is IEnumerable<'a>, where 'a is an // anonymous type defined as new {string Last, int score}. That is,// each instance of this anonymous type has two members, a string // (Last) and an int (score).foreach (var student in scoreQuery){Console.WriteLine("{0} Score: {1}", student.Last, student.score);}// Keep the console window open in debug mode.Console.WriteLine("Press any key to exit.");Console.ReadKey();}       
}
/*
scoreQuery:
Omelchenko Score: 97
O'Donnell Score: 91
Mortensen Score: 94
Garcia Score: 97
Beebe Score: 91
*/
使用多个 from 子句执行联接

复合 from 子句用于访问单个数据源中的内部集合。 不过,查询还可以包含多个可从独立数据源生成补充查询的 from 子句。 使用此技术可以执行某些类型的、无法通过使用 join 子句执行的联接操作。

下面的示例演示如何使用两个 from 子句构成两个数据源的完全交叉联接。

C#
class CompoundFrom2
{static void Main(){char[] upperCase = { 'A', 'B', 'C' };char[] lowerCase = { 'x', 'y', 'z' };// The type of joinQuery1 is IEnumerable<'a>, where 'a// indicates an anonymous type. This anonymous type has two// members, upper and lower, both of type char.var joinQuery1 =from upper in upperCasefrom lower in lowerCaseselect new { upper, lower };// The type of joinQuery2 is IEnumerable<'a>, where 'a// indicates an anonymous type. This anonymous type has two// members, upper and lower, both of type char.var joinQuery2 =from lower in lowerCasewhere lower != 'x'from upper in upperCaseselect new { lower, upper };// Execute the queries.Console.WriteLine("Cross join:");// Rest the mouse pointer on joinQuery1 to verify its type.foreach (var pair in joinQuery1){Console.WriteLine("{0} is matched to {1}", pair.upper, pair.lower);}Console.WriteLine("Filtered non-equijoin:");// Rest the mouse pointer over joinQuery2 to verify its type.foreach (var pair in joinQuery2){Console.WriteLine("{0} is matched to {1}", pair.lower, pair.upper);}// Keep the console window open in debug mode.Console.WriteLine("Press any key to exit.");Console.ReadKey();}
}
/* Output:Cross join:A is matched to xA is matched to yA is matched to zB is matched to xB is matched to yB is matched to zC is matched to xC is matched to yC is matched to zFiltered non-equijoin:y is matched to Ay is matched to By is matched to Cz is matched to Az is matched to Bz is matched to C*/

转载于:https://www.cnblogs.com/songtzu/archive/2012/08/14/2638374.html

相关文章:

【直播】王茂霖:二手车交易价格预测-千变万化特征工程(河北高校数据挖掘邀请赛)

二手车交易价格预测-千变万化特征工程 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中。为了大家更好的参赛&#xff0c;王茂霖分享了 从0梳理1场数据挖掘赛事&#xff01;&#xff0c;完整梳理了从环境准备、数据读取、数据分析、特征工程到数据建模的整个过程。04月20日晚…

微软在C# 8中引入预览版可空引用类型

微软已经为开发者提供了预览版的可空引用类型&#xff08;Nullable Reference Type&#xff09;&#xff0c;想尝鲜的开发者可以尝试这个新特性&#xff0c;并提供反馈。\\预览版可空引用类型是Visual Studio 2017 15.5 Preview 4的Roslyn扩展&#xff0c;现在支持.NET框架&…

制作ui设计作品集要注意哪些

UI设计作品集的作用是非常大的&#xff0c;不要小看&#xff0c;它可以用来展示自身的UI设计实力&#xff0c;参加完UI设计培训后找工作当然也是非常重要的一个环节&#xff0c;下面小编就为大家详细的介绍一下制作ui设计作品集要注意哪些问题? UI设计培训分享&#xff1a;制作…

[转] 理解RESTful架构

FROM:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到&#xff0c;网站即软件&#xff0c;而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式&#xff0c;建立在分布式体系上&#xff0c;通过互联网通信&#xff0c;具有高…

【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解

CNN模型搭建、训练以及LSTM模型思路详解 目前 Datawhale第24期组队学习 正在如火如荼的进行中。为了大家更好的学习“零基础入门语音识别&#xff08;食物声音识别&#xff09;”的课程设计者 陈安东和但扬杰&#xff0c;将为大家带来一场直播分享 —— CNN模型搭建、训练以及L…

参加Java培训需要注意哪些

想要学好java技术&#xff0c;靠自学是非常困难的&#xff0c;通过java培训机构进行系统的学习是最好的&#xff0c;那么参加Java培训需要注意哪些呢?来看看下面的详细介绍。 参加Java培训需要注意哪些?大概整理了下面几点。 1、要有与时俱进且完整沉浸的课程体系。 IT培训的…

JDBC操作MySQL Lob字段记实

JDBC操作MySQL Lob字段记实虽然Java的持久化框架多如牛毛&#xff0c;但都离不开JDBC技术&#xff0c;JDBC在某些时候是其他框架难以取代的。也是java操作数据库最根本的技术。上文写了JDBC操作DB2 Lob字段bug问题&#xff0c;为此&#xff0c;我还特意写了MySQL平台下的Lob字段…

placeholder

打开一个那边发过来的页面&#xff0c;里面全是placeholder。没见过&#xff0c;一时气愤全部ko&#xff0c;用传统的方法都能搞定的东西&#xff0c;为啥要标新立异&#xff01; 后来发现如果想在input password里显示个把汉字&#xff0c;还真是不容易&#xff0c;总不能让我…

【直播】李祖贤:集成学习答疑直播之五 -- 常用集成思路

集成学习答疑直播之五 – 常用集成思路 集成学习 是首个横跨3个周期的长期组队学习&#xff0c;在 第24期组队学习 中进行到“第二期-模型集成思路”阶段。组队学习期间&#xff0c;课程设计者每周针对学习任务的重难点和学员的学习情况进行集中直播答疑&#xff0c;目前已经进…

参加Python培训班能找到工作吗?

参加Python培训班能找到工作吗?很多人都比较关心这个问题&#xff0c;尤其是正在参加Python培训的同学&#xff0c;想要了解这个问题&#xff0c;我们必须从Python就业市场、Python就业班优劣以及个人学习效果三个大的方面进行分析。来看看下面的详细介绍。 参加Python培训班能…

HTTP协议Etag详解

HTTP协议规格说明定义ETag为“被请求变量的实体值”。另一种说法是&#xff0c;ETag是一个可以与Web资源关联的记号&#xff08;token&#xff09;。典型的Web资源可以一个Web页&#xff0c;但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义&#xff0c;并在HTT…

【第13周复盘】小朋友们也开始卷了

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

原生ajax+php上传图片的简单实现

前端 <input type"file" onclick"updown" accept"image/png,image/gif">//accept限制上传的类型<script> function upload1(obj){ var files obj.files ; var formData new FormData();$.ajax({url: download.php,type: "POS…

参加软件测试培训前景怎么样

软件测试在近几年的发展前景还是非常不错的&#xff0c;很多人都开始参加软件测试培训班学习技术&#xff0c;要想具体了解参加软件测试培训前景怎么样?来看看下面的详细介绍就知道了。 参加软件测试培训前景怎么样?各大招聘平台上&#xff0c;都能看到测试的影子&#xff0c…

如果你喜欢一个程序员小伙

程序员向来是善于幽默自嘲的群体&#xff0c;但从某种程度上影响了咱程序员在广大女同胞心中的印象啊&#xff5e;&#xff5e;于是写下此篇&#xff08;有从别处看到的3句加进来的&#xff09;&#xff0c; 就算是为咱程序员做个广告&#xff5e;&#xff5e;要是觉得有点过的…

遇到大容量磁盘你该怎么办?

GPT 磁盘分区&#xff1a;首先&#xff0c;你得有一块 GPT 分区的硬盘。小于 2 TB 的磁盘也可以转为 MBR 磁盘&#xff0c;但是大于 2 TB 的磁盘则需要使用 GPT 分区&#xff0c;否则大于 2 TB 的部分将被你封印。 挂载硬盘后&#xff0c;打开系统并以 root 身份登陆。这里博主…

如何解决Python3写入CSV出现‘gbk‘ codec can‘t encode的错误

今天&#xff0c;我在 Windows 上用 Python3 爬取知乎上有关中医的问答&#xff0c;但是在把爬取的内容写进CSV文件的时候&#xff0c;出现了以下异常。 UnicodeEncodeError: gbk codec cant encode character \u2630 in position 3969: illegal multibyte sequence经过上网查…

ui设计怎样做出有效果的视觉层级?

作为一名UI设计师&#xff0c;大家应该清楚的了解到每一款产品都有不同的风格和设计&#xff0c;但是每一款UI设计元素都是有通风之处的&#xff0c;如何能够做出有效的视觉层级&#xff0c;对用户的体验有着十分积极的影响。本期UI设计培训教程就为大家详细的介绍一下ui设计怎…

Java RandomAccessFile的使用

Java的RandomAccessFile提供对文件的读写功能&#xff0c;与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何地方。这就是“Random”的意义所在。 RandomAccessFile的对象包含一个记录指针&#xff0c;用于标识当前流的读写位置&#xff0c;这个位置可以向…

【组队学习】【24期】集成学习(中)

集成学习&#xff08;中&#xff09; 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-data-mining/tree/master/EnsembleLearning 基本信息 贡献人员&#xff1a;李祖贤、薛传雨、赵可、杨毅远、陈琰钰、李嘉骐学习周期&#xff1a;12天学习形式&a…

Android发布项目到外部仓库

为什么80%的码农都做不了架构师&#xff1f;>>> 关于android发布仓库到外部项目的文章&#xff0c;目前大概为分两类&#xff1a; 一种是发布到bintray、jcenter上&#xff0c;一种是将项目上传到github&#xff0c;然后利用jitpack自动打包&#xff0c;下面简单说…

Java零基础学习难吗

java编程是入行互联网的小伙伴们大多数的选择&#xff0c;那么对于零基础的小伙伴来说Java零基础学习难吗?如果你是初学者&#xff0c;你可以很好的理解java编程语言。并不困难。如果你的学习能力比较高&#xff0c;那么你对Java的理解会更快。而如果你恰巧已经掌握了c或c语言…

玩转“网上邻居”之网络配置(二)

接上篇二、混合系统网络目前实际应用中单一系统的对等网络已不是主流&#xff0c;主要是由于这种网络性能较低&#xff0c;缺乏很好看安全及网络管理能力。目前在各企事业单位中普遍应用的还是基于多系统的域结构混合网络。但因目前主流应用的系统比较多&#xff0c;所以各种网…

UVa 10180 - Rope Crisis in Ropeland!

题目链接&#xff1a;http://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&category41&pageshow_problem&problem1121 题意&#xff1a;给出两点坐标&#xff0c;用一条最短的线&#xff08;曲线或者直线&#xff09;连接起来&#xff0c;坐…

【组队学习】【24期】河北邀请赛(二手车价格预测)

河北邀请赛&#xff08;二手车价格预测&#xff09; 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-data-mining/tree/master/SecondHandCarPriceForecast 数据挖掘实践&#xff08;二手车价格预测&#xff09;的内容来自 Datawhale与天池联合发起…

什么样的人合适学习Python?

什么样的人合适学习Python?近几年&#xff0c;关注Python技术的小伙伴越来越多&#xff0c;很多人都想知道Python培训好不好学?难不难学?哪些人适合学?来看看下面的详细介绍。 Python培训分享&#xff1a;什么样的人合适学习Python?想学好python&#xff0c;关键还是看三点…

Table doesn't have a primary key

从数据库取出来的数据&#xff0c;一般会放在一个DataTable中。但是&#xff0c;Insus.NET想实现一个小功能&#xff0c;就是在这个DataTable能快速找到某一行记录&#xff0c;来显示于asp.net页面上。这时我们可以使用DataTable的Find()成員函式來檢查資料是否已存在。但当Ins…

【组队学习】【24期】数据挖掘实践(智慧海洋)

数据挖掘实践&#xff08;智慧海洋&#xff09; 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-data-mining/tree/master/wisdomOcean 基本信息 贡献人员&#xff1a;李运佳、李万业、赵信达、张晋、刘羽中、王贺、肖明远学习周期&#xff1a;12天…

vim 输入中文

收藏一些有关vim输入中文的链接为了以后方便查看 http://vimim.googlecode.com/svn/vimim/vimim.html http://www.wang3feng.com/2010/07/03/e5-ad-a6vim-e4-ba-8c-e5-a6-82-e4-bd-95-e5-9c-a8vim-e4-b8-ad-e6-9b-b4-e5-a5-bd-e7-9a-84-e8-be-93-e5-85-a5-e4-b8-ad-e6-96-87/ 本…

Web前端工程师的一些常见误区

想要作为一名合格的web前端工程师&#xff0c;那么掌握基本的开发技术是远远不够的&#xff0c;在职场中还要少犯一些错误&#xff0c;本期小编为大家分享的web前端培训教程主要是介绍一些web前端工程师常见的误区&#xff0c;希望对大家有所帮助。 web前端培训分享&#xff1a…