2016年5月29日 星期日
RegularExpressions 正規表示式檢查函式
正整數1-3位或正整數含1-2位小數的浮點數
^(([0-9]{1,3})([.][0-9]{1,2})?)$
身份証字號
手機
家用電話
2014年12月8日 星期一
聰明的動態型別 dynamic
程式碼:
結果:可以看到d初始型別是int32,加上文字後自動將型別轉成字串型別,沒有顯示任何錯誤
動態型別可以略過編輯時期檢查,還會自動改變型別真是太讚了!
更多內容可以參考此篇:
了解 C# 4 的動態關鍵字
dynamic d = 1; //初始型別是數字
Console.WriteLine("d type :{0},d status:{1}", d.GetType(),d);
d += "test"; //故意加上文字(正常這裡vs2013編輯器就會顯示錯誤了)
Console.WriteLine("d type :{0},d status:{1}", d.GetType(), d);
Console.ReadKey();
結果:可以看到d初始型別是int32,加上文字後自動將型別轉成字串型別,沒有顯示任何錯誤
動態型別可以略過編輯時期檢查,還會自動改變型別真是太讚了!
更多內容可以參考此篇:
了解 C# 4 的動態關鍵字
2014年12月7日 星期日
[LinQ] Groupby 與 ToLookup 差異
成績類別:
public class Grade {
public string Name { get; set; }
public int Value { get; set; }
public string Group { get; set; }
}
主程式:
List<Grade> val= new List<Grade> {
new Grade{Name="alvin",Value=85,Group ="A"},
new Grade{Name="lily",Value=75,Group="B"},
new Grade{Name="john",Value=65,Group="C"},
new Grade{Name="helen",Value=77,Group="B"},
new Grade{Name="mary",Value=78,Group="B"},
new Grade{Name="jack",Value=89,Group="A"},
};
var gok = val.GroupBy(c => c.Group); //GroupBy還沒有將資料取回
var lok = val.ToLookup(c => c.Group); //此段已將資料取回
val.RemoveAll(c => true ); //將原始資料清空
Console.WriteLine("==========GroupBy start==========");
foreach (var g in gok) {
Console.WriteLine("=====group:{0}=====", g.Key);
foreach (var p in g) {
Console.WriteLine("name:{0},value:{1},group:{2}",p.Name ,p.Value ,p.Group );
}
}
Console.WriteLine("==========ToLookup start==========");
foreach (var g in lok) {
Console.WriteLine("=====group-{0}=====", g.Key);
foreach (var p in g) {
Console.WriteLine("name:{0},value:{1},group:{2}",p.Name ,p.Value ,p.Group );
}
}
Console.ReadKey();
結果:Groupby沒有資料出現,因為Groupby時沒有立即將資料取回,所以後面Removeall後,再執行就沒資料可用
完整程式碼:
https://www.dropbox.com/s/72p8ayukwaauyun/20141205.txt?dl=0
結果:差別在立即將資料取回(ToLookup)和延遲取回資料(Groupby)
2014年12月6日 星期六
[委派] Console測試匿名委派
委派函式:
delegate void TestDelegate(string str);
程式碼:
static void Main(string[] args) {
TestDelegate t1 = (string s1) => { Console.WriteLine("print from s1:" + s1); };
TestDelegate t2 = (string s2) => { Console.WriteLine("print from s2:" + s2); };
t1 += t1 + t2 + t1;
t1("Hello");
t1.Invoke("Hello world");
Console.ReadKey();
}
結果:
更多內容可以參考:
Lambda 運算式 (C# 程式設計手冊)
2014年11月23日 星期日
各版本的Sql connection 字串寫法
LocalDB:
SQL Azure:
Entity Framework Database:
Sql Compact:
<add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" />Sql Express:
<add name="ConnectionStringName" providerName="System.Data.SqlClient"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
Sql Server:<add name="ConnectionStringName" providerName="System.Data.SqlClient"
connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;Integrated Security=False;User Id=userid;Password=password;MultipleActiveResultSets=True" />
SQL Azure:
<add name="ConnectionStringName" providerName="System.Data.SqlClient"
connectionString="Data Source=tcp:ServerName.database.windows.net,1433;Initial Catalog=DatabaseName;Integrated Security=False;User Id=username@servername;Password=password;Encrypt=True;TrustServerCertificate=False;MultipleActiveResultSets=True" />
Entity Framework Database:
<add name="ConnectionStringName" providerName="System.Data.EntityClient"
connectionString="metadata=res://*/ ContextClass.csdl|res://*/ ContextClass.ssdl|res://*/ ContextClass.msl;provider=System.Data.SqlClient;provider connection string="Data Source=ServerName;Integrated Security=False;User Id=userid;Password=password;MultipleActiveResultSets=True"" />
Sql Compact:
<add name="ConnectionStringName" providerName="System.Data.SqlServerCe.4.0"
connectionString="Data Source=|DataDirectory|\DatabaseFileName.sdf" />
訂閱:
文章 (Atom)
熱門文章
-
解決辦法:(沒實際試過僅供參考) 1. ASP.NET預設連結資料庫的Connection數為100個,在Connection String裡加入Max Pool Size=xxx的設定 2. 重啓SQL資料庫的服務 查詢目前DB連線數 USE mast...
-
===終端機命令列上執行=== 版本查詢:mysql --version MariaDB啟動的參數內容:mysqld --verbose --help === MY SQL 內執行=== 顯示目前MariaDB的設定值:show variables;show...
-
執行Eclipse時出現 ADB server didn't ACK 的錯誤時可以參考 Error : ADB Server Didn't ACK on Windows 另外要找哪一個PID佔用的5037(ADB的Port)有時會很長一串,如果要分...
-
修改 /etc/mysql/my.cnf sudo vim /etc/mysql/my.cnf 在[mysqld]中加上此行 ============================= [mysqld] character-set-server=utf8mb4...
-
2015.06.07 安裝mono sudo apt-get install mono-complete sudo apt-get install mono-runtime ==================下面是舊文章僅供參考================...
-
首先檢查Eclipse版本 我的版本是Kepler Service Release 2 接下來複製要更新語言包的網址 http://www.eclipse.org/babel/downloads.php 再來打開Eclipse工具...
-
先安裝Python的Mysql連線模組(請用管理員身份開啟命令字元) pip install MySQL-python 出現錯誤,必須要安裝Microsoft Vistual C++ 14.0 https://www.micros...
-
開發時,有時需要倒一下線上機的資料來測試時 線上機( Ubuntu ) : mysql -u root -p SELECT * FROM [TABLE_NAME] INTO OUTFILE "/PATH/FILE_NAME.TXT"; 本地...
-
終於找到UBUNTU 15.04開機進入COMMAND LINE 的方式了(趕緊記錄一下) sudo vim /etc/default/grub 1. 將 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 註...


