日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

sqlce wp from查询语句详解

發布時間:2023/11/27 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的sqlce wp from查询语句详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。