using
指令指定適當的命名空間來控制範圍內的標準查詢運算符。 下面的查詢表達式獲取一個字符串數組,按字符串中的第一個字符對字符串進行分組,而後對各組進行排序。
var query = from str in stringArray group str by str[0] into stringGroup orderby stringGroup.Key select stringGroup;
有關詳細信息,請參閱 LINQ 查詢表達式。html
var number = 5; var name = "Virginia"; var query = from str in stringArray where str[0] == 'm' select str;
聲明爲 var
的變量與顯式指定其類型的變量同樣都是強類型。 經過使用 var
,能夠建立匿名類型,但它只能用於本地變量。 也可使用隱式類型聲明數組。express
有關詳細信息,請參閱隱式類型局部變量。編程
Customer
,具備公共 Name
和 Phone
屬性,能夠按下列代碼中所示使用對象初始值設定項:
var cust = new Customer { Name = "Mike", Phone = "555-1212" };
繼續咱們的 Customer
類,假設有一個名爲 IncomingOrders
的數據源,而且每一個訂單具備一個較大的 OrderSize
,咱們但願基於該訂單建立新的 Customer
。 能夠在此數據源上執行 LINQ 查詢,並使用對象初始化來填充集合:api
var newLargeOrderCustomers = from o in IncomingOrders where o.OrderSize > 5 select new Customer { Name = o.Name, Phone = o.Phone };
數據源可能具備比 Customer
類更多的屬性,例如 OrderSize
,但執行對象初始化後,從查詢返回的數據被定型爲所需的數據類型;咱們選擇與咱們的類相關的數據。 所以,咱們如今有填充了咱們想要的多個新 Customer
的 IEnumerable
。 上述代碼也可使用 LINQ 的方法語法編寫:數組
var newLargeOrderCustomers = IncomingOrders.Where(x => x.OrderSize > 5).Select(y => new Customer { Name = y.Name, Phone = y.Phone });
匿名類型由編譯器構造,且類型名稱只可用於編譯器。 匿名類型提供一種在查詢結果中對一組屬性臨時分組的簡便方法,無需定義單獨的命名類型。 使用新的表達式和對象初始值設定項初始化匿名類型,以下所示:ide
select new {name = cust.Name, phone = cust.Phone};
有關詳細信息,請參閱匿名類型。函數
擴展方法是一種可與類型關聯的靜態方法,所以能夠像實例方法那樣對類型調用它。 實際上,利用此功能,能夠將新方法「添加」到現有類型,而不會實際修改它們。 標準查詢運算符是一組擴展方法,它們爲實現 IEnumerable<T> 的任何類型提供 LINQ 查詢功能。ui
有關詳細信息,請參閱擴展方法。spa
Lambda 表達式是一種內聯函數,該函數使用 => 運算符將輸入參數與函數體分離,而且能夠在編譯時轉換爲委託或表達式樹。 在 LINQ 編程中,在對標準查詢運算符進行直接方法調用時,會遇到 lambda 表達式。code
有關詳細信息,請參見: