發表文章

目前顯示的是 6月, 2021的文章

[C#]使用IQueryable動態排序ThenBy

    該情境是前端有資料需要多重排序,每個欄位 (key) 可以正序或倒序 (order) ,且要依照順序 (sortNo) ,所以前端只要把排序條件給後端,而後端會把資料篩選排序後,回傳給前端。     由於效能因素,物件必須於過程中保持 IQueryable,於最後輸出時再轉為 IEnumerable,所以這邊有個擴充可以參考引用。 ●排序條件的範例Json: { "orderList": [ { "key": "Id". "order": 1, "sortNo": 1 }, { "key": "Age". "order": -1, "sortNo": 2 } ] } 一、手動新增IQueryable擴充: public static class IOrderedQueryableExtension { public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderBy"); } public static IOrderedQueryable<T> OrderByDescending<T>(this IQueryable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderByDescending"); } public static IOrderedQueryable<T> ThenBy<T>(...

[C#]RBK(8進制)和字串互轉

因特殊需求,需要實作該功能,主要功能的轉換是類似以下範例:      "\304\343\272\303" => "你好" 不廢話,附上程式碼。 // 中文轉Rbk8進制 private void button1_Click(object sender, EventArgs e) { string hz = this.richTextBox1.Text; byte[] gbk = Encoding.GetEncoding("GBK").GetBytes(hz); string s1 = ""; foreach (byte b in gbk) { s1 += $"\\{Convert.ToString(b, 8)}"; } this.richTextBox2.Text = s1; } // Rbk8進制轉中文 private void button2_Click(object sender, EventArgs e) { string cd = this.richTextBox1.Text; string[] b4 = RemoveEmptyString(cd.Split('\\')); byte[] bs = new byte[b4.Length]; for (int i = 0; i < b4.Length; i++) { bs[i] = (byte)Convert.ToByte(b4[i], 8); } this.richTextBox2.Text = Encoding.GetEncoding("GBK").GetString(bs); } // 移除空字串 private string[] RemoveEmptyString(string[] strArr) { List strList = new List (); ; foreach (var item in strArr) { if (!string.IsNullOr...

[C#]DateTime移除秒、移除毫秒或無條件進位

 ● 去掉 一個Datetime物件的 秒數(seconds) -方法一 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 dt = dt.AddSeconds(-dt.Second); // 加負號,移除秒數  ● 去掉 一個Datetime物件的 秒數(seconds) -方法二 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 var dtStr = dt.ToString( "yyyy-MM-dd HH:mm" ); // 轉為字串,去掉 :ss dt = Conver.ToDateTime( dtStr ); // 秒數部份即為0  ● 去掉 一個Datetime物件的 毫秒數(Millisecond) -方法一 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 dt = dt.AddMilliseconds(-dt.Millisecond); // 加負號,移除豪秒數  ● 去掉 一個Datetime物件的 毫秒數(Millisecond) -方法二 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 var dtStr = dt.ToString( "yyyy-MM-dd HH:mm" ); // 轉為字串,去掉 :ss dt = Conver.ToDateTime( dtStr ); // 秒數部份即為0  ●Datetime物件的 毫秒數(Millisecond) 無條件進位 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 dt = dt.AddMilliseconds( 1000 - dt.Millisecond ); //秒數會加1, 毫秒數為0 參考資料: 1.  c# - Strip seconds from datetime - Stack Overflow 2.  C#中DateTime对象去掉毫秒部分的方法,如何对毫秒部分四舍五入为整秒 - 代码先锋网 (codeleading.com)

贊助Donate

圖片
  Buy me a coffee   PayPal.Me

[SQL] 在SqlServer修改資料表Schema (Change dbo schema to other)

●修改資料表的 Schema 從 MySchema 回復為 dbo : ALTER SCHEMA MySchema TRANSFER dbo.MyTable ●修改資料表的 Schema 從 dbo 改為 MySchema : ALTER SCHEMA dbo TRANSFER MySchema.MyTable 參考資料:  sql - How do I change db schema to dbo - Stack Overflow  

[Git]Another git process seems to be running in this repository

     如標題,操作Git時,偶然間發生這個問題,想要使用 switch / checkout, 或是 commit 都是這個錯誤 "git did not exit cleanly (exit code 128)" ,此外還有一行提示 "Another git process seems to be running in this repository",不多話,附上解法: 刪掉  .git/index.lock 收工。 參考:  Another git process seems to be running in this repository - Stack Overflow