1 4 1 1 用 LINQ 處理資料

2021-06-22 21:49:28 字數 1137 閱讀 7287

1.4.1.1 用 linq 處理資料

如果你已經在使用 linq,那麼這個示例只是提醒,但我們會用它來展示一些更重要的內容。這裡示例**處理資料,使用的是標準的命令式程式設計風格。

listing 1.3 imperative data processing (c#)

ienumerablegetexpenisveproducts() -$",

product.productname, product.unitprice)); [3]

return filteredinfos;

正如你所看到的,**就是基本的命令序列,是命令式的。第一句建立新的列表[1],第二句遍歷所有的產品[2],後面的語句將遍歷到的元素新增到列表中[3]。但是,我們希望能夠在更高層次上描述這個問題,使用更抽象的術語,即,這段**篩選乙個集合,返回所有符合條件產品的有關資訊。

在 c# 3.0 中,寫同樣的**,我們可以使用查詢表示式。在清單 1.4 中的這個版本,更貼近我們的真正目標,使用同的思想,篩選和轉換資料。

listing 1.4 declarative data processing(c#)

ienumerablegetexpenisveproducts() - $",

product.productname, product.unitprice); [2]

計算結果(filteredinfos [可能是筆誤,**中並無這個變數。應該是篩選後的資訊。])的表示式是由基本運算子,例如 select 或 where 所組成。這些運算子把其他表示式作為引數,因為它們需要知道篩選、選擇什麼作為結果。與前面的**相比,這些運算子使用全新方法組合**,同樣表達我們的意圖,但寫的**更少。注意,在清單 1.4 中的整個計算乙個描述結果的表示式,而不是語句序列。你將在整本書反覆看到這一趨勢,在更具宣告性的語言,如 f# 中,所寫的一切都是表示式。

這個清單中的另乙個有意義的地方是,解決方案的許多技術細節都轉到了基本運算子中了。這樣,**更簡單,更靈活,因為我們可以只需要改變運算子的實現,而不用對使用運算子的**做大的修改。稍後將會看到,這種方式使得並行處理資料的**更容易。

linq 並不是唯一依賴宣告式程式設計的主流 .net 技術,下面,我們把注意力轉到 windows 表現層基礎(windows presentation foundation,wpf)和xaml 語言上來。

Linq處理XML文件

處理xml文件的封裝 public static class xmlhelper return xdocument.load filename 獲得子節點實體 節點 子節點的定義 子節點的屬性名稱 子節點的屬性值 子節點屬性值為指定值的,若null沒找到,否則返回第乙個匹配的 public stat...

用LInq連線資料庫做資料來源

1,在專案中新增linq to sql類 在.dbml檔案中拖入要連線資料庫中的表,這樣就會自動生成乙個實體類,對應一張表,還有乙個datacontext類,一般以 databasenamedatacontext 命名,它繼承了datacontext類,這樣我就沒就可以用這個類連線資料庫了。2,假如...

用Python處理實驗資料

今天難得清靜,雖然上課還是沉浸於完成任務的放縱式玩手機中,但是也開始撿起了以前的一些東西,尤其是我下功夫最多的pyhton,今晚要寫乙個實驗報告,要處理一堆的資料,所以乾脆就直接的用python處理,然後我就慢慢的一點點的輸入資料然後抄寫就好了。爽歪歪的有木有?下面是我們實驗的要求 字不是我的 話不...