原创 C# Lock關鍵字

  lock 關鍵字將語句塊標記爲臨界區,方法是獲取給定對象的互斥鎖,執行語句,然後釋放該鎖。   lock語句根本使用的就是Monitor.Enter和Monitor.Exit,也就是說lock(this)時執行Monito

原创 【C#】加快Bitmap的訪問速度

  在對Bitmap圖片操作的時候,有時需要用到獲取或設置像素顏色方法:GetPixel 和 SetPixel, 如果直接對這兩個方法進行操作的話速度很慢,這裏我們可以通過把數據提取出來操作,然後操作完在複製回去可以加快訪問速度

原创 8種主要排序算法的C#實現 (二)

  歸併排序 歸併排序也是採用“分而治之”的方式。剛發現分治法是一種算法範式,我還一直以爲是一種需要意會的思想呢。 不好意思了,孤陋寡聞了,哈哈! 原理:將兩個有序的數列,通過比較,合併爲一個有序數列。 維基入口 爲方便理解

原创 c#打包文件解壓縮

首先要引用一下類庫:using Ionic.Zip;這個類庫可以到網上下載。   下面對類庫使用的封裝方法: 得到指定的輸入流的ZIP壓縮流對象        /// <summary> /// 得到

原创 一些很有趣的網站

1,360度高清晰無死角可任意放大縮小的網站,讓你站在難以企及的視角觀察壯美絕倫的風光!  (溫馨提示:看久了會感覺頭暈哦,點擊圖片上的直升飛機可以體驗上帝視角)   http://www.airpano.com/    

原创 8種主要排序算法的C#實現 (一)

簡介 排序算法是我們編程中遇到的最多的算法。目前主流的算法有8種。   平均時間複雜度從高到低依次是:      冒泡排序(o(n2)),選擇排序(o(n2)),插入排序(o(n2)),堆排序(o(nlogn)),    

原创 StringBuilder String string.Concat 字符串拼接速度

首先看測試代碼: public class StringSpeedTest { private readonly static string _testStr = "0123456789";

原创 c# 無損高質量壓縮圖片代碼

  在CSDN上看到了一個壓縮算法:http://blog.csdn.net/qq_16542775/article/details/51792149 進過測試這個算法,發現,將原始圖像的大小進行對半處理,然後迭代跳轉壓縮質量參數,

原创 利用反射快速給Model實體賦值

  試想這樣一個業務需求:有一張合同表,由於合同涉及內容比較多所以此表比較龐大,大概有120多個字段。現在合同每一次變更時都需要對合同原始信息進行歸檔一次,版本號依次遞增。那麼我們就要新建一張合同歷史表,字段跟原合同表一模一樣,此

原创 C# 去除字符串首尾字符或字符串

在做一個屬性入庫的功能,將Excel屬性數據導入到圖層要素當中,這裏Excel和SDE數據庫數據存在一個關聯字段,通過關聯字段值進行匹配屬性入庫。       在實際業務中,由於普查數據往往某些字段值比較複雜,在寫入到圖層中時用戶

原创 MVC 中的 ViewModel

ViewModel這個概念不只是在在MVC模式中有,你會在很多關於MVC、MVP、MVVM的文章中見到這個說法,並且這個概念在任何技術中都有可能提到,比如ASP.NET, Silverlight, WPF, or MVC... 現在

原创 C#中使用委託、接口、匿名方法、泛型委託實現加減乘除算法

使用C#實現加減乘除算法經常被用作新手練習。本篇來分別體驗通過委託、接口、匿名方法、泛型委託來實現。 使用委託實現 加減乘除擁有相同的參數個數、類型和返回類型,首先想到了使用委託實現。 //創建一個委託 public dele

原创 一個簡單例子理解C#的協變和逆變

關於協變逆變,SolidMango的解釋是比較可取的。有了協變,比如,在需要返回IEnumerable<object>類型的時候,可以使用IEnmerable<string>來替代;有了逆變,比如,在需要接收IComparable<

原创 C#中大List的內存分配

之前在開發中只用到List的時候幾乎就是拿過來就用,從來沒有考慮過List的內存分配問題,試想一個有10萬元素的List的在構造和添加元素時內存是如何變化的呢?在MSDN上關於List的Capacity屬性是這麼解釋的   

原创 C# 事件淺析

前言   對於搞.net的朋友來說,經常會遇到關於事件和委託的問題:事件與委託有什麼關係?事件的本質是什麼?委託的本質又是什麼?由於.net 做了大量的封裝,對於初學者,這兩個概念確實不怎麼好理解。事件是用戶與應用程序交互的基礎,