c# - parameter - wpf lambda expression




最酷的C#LINQ/Lambdas技巧你曾經拉過嗎? (10)

LINQ Raytracer當然在我的名單上排名=)

我不太確定它是否優雅,但它絕對是我見過的最酷的linq表達!

哦,只是非常清楚; 我沒有寫( Luke Hoban做了)

看到一篇關於C#中隱藏功能的帖子,但很多人都沒有寫過linq / lambdas的例子......所以......我想知道......

你見過/寫過的C#LINQ和/或Lambdas /匿名代表最酷(最優雅)的用途是什麼?

獎金,如果它也投入生產!




也許不是最酷的,但最近我一直在使用它們我有一塊代碼塊一遍又一遍得到C + Pd只是為了改變幾行。 例如,運行簡單的SQL命令來檢索數據可以這樣完成:

SqlDevice device = GetDevice();

return device.GetMultiple<Post>(
    "GetPosts",
    (s) => {
        s.Parameters.AddWithValue("@CreatedOn", DateTime.Today);

        return true;
    },
    (r, p) => {
        p.Title = r.Get<string>("Title");

        // Fill out post object

        return true;
    }
);

這可以返回今天創建的帖子列表。 這樣我就不必為每個命令,對像等複製和粘貼try-catch-finally塊一千五百萬次。


到目前為止,我遇到的最令人印象深刻的Linq實現是Brahma框架。

它可以用於使用“Linq to GPU”將並行計算卸載到GPU。 您在linq中編寫了一個“查詢”,然後Brahma將其轉換為HLSL(高級著色器語言),以便DirectX可以在GPU上處理它。

這個網站只允許我粘貼一個鏈接,所以嘗試從dotnetrocks這個網絡廣播:

http://www.dotnetrocks.com/default.aspx?showNum=466

除了谷歌Brahma項目,你會得到正確的頁面。

非常酷的東西。

GJ




我試圖想出一個很酷的方法來為我正在構建的網站構建導航控件。 我想使用常規HTML無序列表元素(使用標準CSS“Sucker Fish”外觀 ),頂部導航鼠標懸停效果,顯示下拉項目。 我有一個依賴於sql的緩存DataSet,有兩個表(NavigationTopLevels和NavigationBottomLevels)。 然後,我只需創建兩個具有所需屬性的類對象(TopNav和SubNav)(TopNav類必須具有bottomnav項的通用列表 - > List <SubNav> SubItems)。


var TopNavs = from n in ds.NavigationTopLevels select new TopNav { NavigateUrl = String.Format("{0}/{1}", tmpURL, n.id), Text = n.Text, id = n.id, SubItems = new List<SubNav>( from si in ds.NavigationBottomLevels where si.parentID == n.id select new SubNav { id = si.id, level = si.NavLevel, NavigateUrl = String.Format("{0}/{1}/{2}", tmpURL, n.id, si.id), parentID = si.parentID, Text = si.Text } ) }; List<TopNav> TopNavigation = TopNavs.ToList();

它可能不是“最酷”的,但對於很多想要動態導航的人來說,它的甜蜜並不是必須在通常的循環邏輯中混淆。 在這種情況下,LINQ可以節省時間。


通過INotifyingCollection進行OLINQ反應式LINQ查詢 - 這些查詢允許您(除其他事項外)對大型數據集進行實時聚合。

https://github.com/wasabii/OLinq


長時間運行的LINQ查詢的進度報告 。 在博客文章中,您可以找到一個擴展方法WithProgressReporting(),它允許您在執行時發現並報告linq查詢的進度。





lambda