使用LinQ To Object把數組或DataTable中的數據進行向上彙總

來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=215
GPS平臺、網站建設、軟件開發、系統運維,找森大網絡科技!
http://cnsendnet.taobao.comphp

最近搞造價系統時遇到一些須要彙總的指標數據 數據庫

相似下面的結構數組

指標A 1000
指標B 500
指標C 500網絡

指標A = B+C 運維

當咱們須要對這些數值進行校驗時,實現的方法有不少種,數據庫裏寫存儲過程去更新每行數據,
或者咱們在程序中遍歷等等,但用起來都挺煩瑣的。ide

這時候想到了 Linq To Object 這個技術 網站

簡單說下 Linq 它是.Net Framework 3.5 引入的新技術
它容許編寫C#或者Visual Basic代碼以查詢數據庫相同的方式操做內存數據。3d

主要 有幾點好處 簡單 和 SQL 的語法差很少 舉個例子來講blog

這裏有兩個數組 須要你找出 A 與 B 都存在的元素內存

A=int[]{1,2,3,4,5,6,7,8,0}; B=int[]{2,4,7,8,9}

通常咱們會這麼寫
使用LinQ To Object把數組或DataTable中的數據進行向上彙總
若是使用 Linq的話
使用LinQ To Object把數組或DataTable中的數據進行向上彙總
看起來很是的清爽,並且和SQL的語法相似 咱們能夠快速的掌握。

至於具體的語法和介紹 你們能夠自行的查詢 http://msdn.microsoft.com/zh-cn/library/vstudio/bb397926.aspx

說回來 在咱們的項目中如何使用呢?

例如最開始的例子

指標A 1000
指標B 500
指標C 500

指標A = B+C

這裏我定義一個實體類

class CIndex{
string CIID;
string ParentCIID;
double Cost;
}

獲取全部指標的數據到一個數組中。 listIndexs

注意例子中的指標要按樹形順序排列好,而後咱們從最底下的子節點往上更新數據,
這樣能夠避免先更新了父節點後,才發現子節點數據不對的問題。

對數組從最後面的元素開始遍歷
使用LinQ To Object把數組或DataTable中的數據進行向上彙總
這樣就能很簡單的完成對父子節點的計算。

項目中咱們不少時候都會用到 DataTable 那麼Linq這時候又該怎麼處理呢?
使用LinQ To Object把數組或DataTable中的數據進行向上彙總

須要更深刻了解的 你們能夠閱讀這幾篇文章 寫得蠻不錯的 分享下

• 1. 到如今爲止你還未觸碰LINQ,那進來吧 —— LINQ入門(上篇)
• 2. 到如今爲止你還未觸碰LINQ,那進來吧 —— LINQ入門(中篇)
• 4. 到如今爲止你還未觸碰LINQ,那進來吧 —— LINQ入門(下篇)
• 3. 到如今爲止你還未觸碰LINQ,那進來吧 —— LINQ入門(完結篇)

來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=215
GPS平臺、網站建設、軟件開發、系統運維,找森大網絡科技!
http://cnsendnet.taobao.com

相關文章
相關標籤/搜索