国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

C#LiNq的語法以及常用的擴展方法

2019-11-14 16:11:42
字體:
供稿:網(wǎng)友

  首先先來扯一下,這篇博文是我第一次寫的,主要是我的一些摘錄,希望對大家有所幫助。

Linq的基礎(chǔ)

LINQ(讀音link):Linq To SQL(過時)、Linq To Object、Linq To xml、Linq To entity,目的:以統(tǒng)一的方式對數(shù)據(jù)進行操作。看起來非常像SQL語句,但是和SQL無關(guān)。
var關(guān)鍵字,var類型用來簡化類型的聲明,var i = 2,并不說明i是無類型的,編譯器會自動根據(jù)右邊的值推斷(這叫類型推斷)var代表的值。var只能用來語句中,不能用在返回值、參數(shù)列表等場合。
匿名類型,var s = new { Name = "jim", Sex = M },在后面的代碼中就能用s.Name 這樣的方式引用屬性了。匿名類型不是動態(tài)類型,最終仍然是編譯成一個類,用Reflector查看。如果編譯器遇到了一個屬性完全一致的匿名類型,則會重用這個類型,而不是每次都創(chuàng)建一個新的類型。也是類型推斷的一種表現(xiàn)。
• string name = "ljw"; int age = 30;var p = new { name,age, name.Length};默認命名屬性。
•如果推斷的屬性名沖突,則必須顯式指定var p = new { name.Length ,Length2="C#".Length}
•如果寫程序的時候調(diào)用不了Linq的方法,就看看是否using了system.Linq。
1  Table1TableAdapter adapter = new Table1TableAdapter();2             /*3             強類型DataSet與Var.Database1DataSet.Table1DataTable dt = adapter.GetData();4             強類型DataSet與Var.Database1DataSet.Table1Row row = dt[0];5              */6             var dt = adapter.GetData();7             var row = dt[0];8             var aa = row.aa;
View Code

排序,分組
orderby person.Age descending

1 int[] values = { 1, 2, 5, 2, 3, 5, 5, 3, 4, 3, 3 };2             var result = from i in values3                             //按i進行排序,g表示分組4                          group i by i into g5                          select g.Key;
View Code

擴展方法

下面的方法都是IEnumerable<T>的擴展方法:

Average計算平均值; Min最小元素;Max最大元素;Sum元素總和; Count元素數(shù)量;

Concat連接兩個序列;//相當(dāng)于sql的Unoin all

Contains序列是否包含指定元素;

Distinct取得序列中的非重復(fù)元素;

Except獲得兩個序列的差集;

Intersect獲得兩個序列的交集;

First取得序列第一個元素;

Single取得序列的唯一一個元素,如果元素個數(shù)不是1個,則報錯;

FirstOrDefault 取得序列第一個元素,如果沒有一個元素,則返回默認值;

Linq只能用于范型的序列,IEnumerable<T>,對于非范型,可以用Cast或者OfType

IEnumerable的方法:

Cast<TResult>:由于Linq要針對范型類型操作,對于老版本.Net類等非范型的IEnumerable序列可以用Cast方法轉(zhuǎn)換為范型的序列。ArrayList l; IEnumerable<int> il = l.Cast<int>();

OfType<TResult>:Cast會嘗試將序列中所有元素都轉(zhuǎn)換為TResult類型,如果待轉(zhuǎn)換的非范型序列中含有其他類型,則會報錯。OfType則是只將序列中挑出指定類型的元素轉(zhuǎn)換到范型序列中。

 

 

 

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 太谷县| 诸暨市| 东乌珠穆沁旗| 扎囊县| 溧阳市| 崇左市| 东兰县| 泾源县| 新干县| 洞头县| 鄂州市| 鲁山县| 开封市| 江津市| 托克逊县| 花莲市| 澄江县| 通州市| 当阳市| 深泽县| 邓州市| 两当县| 朝阳市| 龙山县| 康乐县| 左贡县| 浮梁县| 涡阳县| 稷山县| 景泰县| 涞水县| 博湖县| 华阴市| 潢川县| 云林县| 乌鲁木齐市| 濮阳市| 胶南市| 平邑县| 永修县| 宣武区|