LINQ入門

LINQ 是C#中內置的查詢語言,感受和Sql比較相似,主要包括了LINQ to Object,LINQ to XML,LINQ to SQL爲不一樣類型的數據提供瞭解決方案。暫時只看了LINQ to Object部分,後面的等我看完再補上。 從簡單的數組開始,設有一個數組int[] nums存放者大量數據,如今用LINQ來查找其中>1000的存在,並從大到小排序。 var sqlResult = from n in nums where n >1000 orderby descending select n ; 獲得的sqlResult是用var關鍵字申明的,其具體類型根據查詢返回結果肯定,是否是有點像JavaScript。from子句指明瞭要查詢的數據,n代指某一元素。LINQ數據源必須是可枚舉的。where子句肯定了查詢的條件。orderby即爲排序,select指明告終果集合。以後就能夠迭代SQLResult來解析所得結果了。 lamda表達式的寫法是: var SQLResult = nums.OrderBy(n =>n).Where(n => n >1000); 其中 =>能夠理解成 goes to 或者是 such as。也就是知足後面的條件或者是趨近於。lamda表達式實際上定義了一個函數,n => n >1000至關於 boolean func(int n ){return n >1000;} queryResult還能夠調用一系列方法:Max (),Min (),Average (),還有支持本身編寫的合計函數的Aggregate()。 對於對象數組而言,用法也是相似的,只不過須要獲得屬性的話,能夠用select o.attr lamda 寫法 objs.Select(n =>n.attr).District (); 來完成投影。注意不支持select子句裏有多個字段,而是應該使用對象來進行如select new{o.attr 1,o.attr2} 。除此以外還有Any和All結合lamda表達式來獲取是否知足條件。Take(int ) 和Skip()來獲取前多少個數據和剩下的。First() 和Firs()和FFirstOrDefault ()來取得第一個查到的值。 用pad打字好慢啊。。。
相關文章
相關標籤/搜索