LINQ技術簡介(整理)

2021-09-30 03:15:59 字數 1535 閱讀 7935

linq技術:解決降低訪問和整合資訊資料的複雜度的問題,即集合訪問技術

linq,語言級整合查詢(languageintegratedquery)

c#3.0 linq

查詢語法

首先來看乙個很簡單的linq查詢例子,查詢乙個int 陣列中小於5的數字,並按照大小順序排列:

class program ;

var m = from n in arr where n < 5 order by n select n;

foreach (var n in m)

console.readline();}}

上述**除了linq查詢語法外,其他都是我們所熟悉的語法,而linq查詢語法跟sql查詢語法很相識,除了先後順序。

q:為何linq 查詢語法是以from 關鍵字開頭的,而不是以select 關鍵字開頭的?select 開頭這種寫法跟sql的寫法更接近,更易懂呀?

a:簡單來說,為了ide的智慧型感知(intelisence)這個功能,select 關鍵字放在後面了,vb9時代都是放在前面的。

以下為linq語法設計的解釋與補充(linq語法的形式過程),自己可以試著改為linq語法形式:

感覺c#設計人員對linq的語法考慮欠佳,我對linq涉獵不深,但是舉例說明我對linq語法設計的考慮:

問題:從int陣列a中選擇範圍在18~28之間的值,並按照公升序輸出int陣列b

已知:int a;

解決:int b = sql;

問題:從結構體point列表a中選擇距離point o不超過單位100的point列表b

已知:lista; point o; 函式float distance(point a, point b);

解決:listb = sql;

問題:將字串s中所有數字設定為字元'0'

已知:string s; 設char chars = s.tochararray();

解決:char result = sql;

問題:在byte陣列a後插入255,形成新的陣列b

已知:byte a;

解決:byte b = sql;

問題:刪除int陣列a中的負值,形成新的陣列b

已知:int a;

解決:int b = sql;

linq

sql

區別

兩者雖然用途相似,但所處的語言環境完全不同。

linq

處理的是物件實體這些的,而

sql則是處理**。如:

int a = ;

// 從陣列中查詢非負整數並按照公升序排列

from n in a where n >= 0 order by n select n

LINQ教程一 LINQ簡介

一 為什麼要使用linq 要理解為什麼使用linq,先來看下面乙個例子。假設有乙個整數型別的陣列,找到裡面的偶數並進行降序排序。1 using system 2using system.collections.generic 3using system.linq 4using system.text...

Linq查詢簡介

查詢是一種從資料來源檢索資料的表示式。查詢通常用專門的查詢語言來表示。隨著時間的推移,人們已經為各種資料來源開發了不同的語言 例如,用於關聯式資料庫的 sql 和用於 xml 的 xquery。因此,開發人員不得不針對他們必須支援的每種資料來源或資料格式而學習新的查詢語言。linq 通過提供一種跨各...

Linq 去重簡介

說到去重首先想到的便是distinct,但是也不是所有地方都適用。下面就講乙個不適用的場景,並給出解決方案。var list await query.getall asnotracking select x x.provincecode distinct tolistasync 這段 獲取 prov...