[C#][LINQ]隨機排序的小技巧

文章分類: C#, LINQ

以前在學校學習陣列的隨機排序時, 大部分都是用swap的方法將雖機兩個元素對調, 並用迴圈隨機對調N次來達到隨機排序的效果, 寫成code大概長得就像這樣

?View Code CSHARP
            Random rand = new Random();
            int r1, r2;
            string tmpdata = "";
            for (int j = 0; j < nums.Count() * 10; ++j)
            {
                r1 = rand.Next(0, nums.Count());
                r2 = rand.Next(0, nums.Count());
 
                // swap
                tmpdata = nums[r2];
                nums[r2] = nums[r1];
                nums[r1] = tmpdata;
            }

但今天看到一個用LINQ表是的例子, 還滿有趣的, 原理是利用OrderBy來排序, 排序的根據則給近一個亂數, 就變成隨機排序了

繼續閱讀…

[C#]實做PercenTile

文章分類: C#

幫人分析資料要用到的函數,上網找了一下,使用跟Excel的PERCENTILE函數相同的處理方法
繼續閱讀…

[C#].Net編碼轉換 Unicode to Big5

文章分類: C#

.Net預設使用的文字編碼是Unicode,有時候會遇到不得不把這個編碼做轉換的工作,可以用以下的code把Unocode轉成Big5
繼續閱讀…

[DevExpress][C#]GridView下取得RepositoryItemComboBox選取值的方法

文章分類: C#, 程式設計 / Programing

一般使用DevExpress的ComboBox時要取值都可以直接抓EditValue屬性來用就好,可是在GridvView下增加的RepositoryItemComboBox卻沒有這個屬性,還好這個類別是繼承自DevExpress.XtraEditors.ComboBoxEdit,所以要抓取RepositoryItemComboBox的值時,只要簡單做個轉型就可以抓到了。
繼續閱讀…

[C#]Report Viewer使用本機報表與資料集

文章分類: C#, SQL Server

之前使用到Report Viewer時,一直都是在本機設計好報表後,再傳到Reporting Service的報表伺服器上;不過當遇到使用比較特別的字體時,本機與伺服器都必須安裝相關字型,不然再存PDF的話字體會跑掉,不過如果沒有權限動server的話會很麻煩,所以乾脆想說把報表寫在本機好了,先把報表設計精靈設計好的報表Copy程式的專案目錄下,直接把副檔名rdl改成rdlc,再寫幾行Code在程式裡設定資料集就可以了
繼續閱讀…

[.NET][C#]大量運算的迴圈中更新控制項的辦法

文章分類: C#, 程式設計 / Programing

寫程式的時候常常會遇到的一種狀況,要處理大量資料時可能會讓整個程式當掉,在迴圈裡面有時候也會同時更新控制項的內容,但是畫面上並不會更新,例如以下的Code
繼續閱讀…

[DevExpress][C#]GridControl使用CheckBox的方法

文章分類: C#

在GridControl裡的Property Editor裡編輯欄位時,可以在欄位屬性中找到ColumnEdit,點選後會加入RepositoryItemCheckEdit物件,再下拉時展New結點可以看到CheckEdit,點選後該欄位就會顯示成CheckBox,再展開ColumnEdit可以編輯這個CheckBox的屬性,其中ValueCheckedValueUnchecked兩個屬性代表這個CheckBox被選取時的值可以自己修改。
不過這樣設定完卻只能單選,要複選的話還必在QueryCheckStateByValue事件裡做額外設定
可以在Property Editor左邊Repository->In-place Editor Repository找到剛剛加入的RepositoryItemCheckEdit,並且自行加入QueryCheckStateByValue事件,Code大致長得像這樣
繼續閱讀…

[Reporting Service][WinForm]用整頁模式產生報表

文章分類: C#

?View Code CSHARP
rpt.SetDisplayMode(DisplayMode.PrintLayout);

注意必須在報表讀取完後再設定,不然會出現錯誤訊息,可以放在Load或RenderingComplete事件下
轉成整頁模式之後會自動縮放,要改變顯示比例可以用以下code
繼續閱讀…

Bad Behavior has blocked 9 access attempts in the last 7 days.