//********************************************************* /// /// textプロパティクリア(TextBoxBase,ComboBox) /// //********************************************************* public static void mClearPropertyText(Control hParent) { // hParent 内のすべてのコントロールを列挙する foreach (Control cControl in hParent.Controls) { // 列挙したコントロールにコントロールが含まれている場合は再帰呼び出しする if (cControl.HasChildren == true) { mClearPropertyText(cControl); } // コントロールの型が TextBoxBase からの派生型の場合は Text をクリアする if (cControl is TextBoxBase) { cControl.Text = string.Empty; } // コントロールの型が ComboBoxの場合は Text をクリアする if (cControl is ComboBox) { cControl.Text = string.Empty; } } }
[C#][Tips][File] INIファイル
namespace libFILE_Ini { //########################### /// [static] //########################### public static class clsProcS { //■□■□■□■□■□■□■□■□■□ //■ DLL //■ //■□■□■□■□■□■□■□■□■□ //****************************************************************** /// //****************************************************************** [DllImport("KERNEL32.DLL")] public static extern uint GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, uint nSize, string lpFileName ); //****************************************************************** /// //****************************************************************** [DllImport("KERNEL32.DLL", EntryPoint = "GetPrivateProfileStringA")] public static extern uint GetPrivateProfileStringByByteArray( string lpAppName, string lpKeyName, string lpDefault, byte[] lpReturnedString, uint nSize, string lpFileName ); //****************************************************************** /// //****************************************************************** [DllImport("KERNEL32.DLL")] public static extern uint GetPrivateProfileInt( string lpAppName, string lpKeyName, int nDefault, string lpFileName ); //****************************************************************** /// //****************************************************************** [DllImport("KERNEL32.DLL")] public static extern uint WritePrivateProfileString( string lpAppName, string lpKeyName, string lpString, string lpFileName ); //■□■□■□■□■□■□■□■□■□ //■ //■□■□■□■□■□■□■□■□■□ //****************************************************************** /// //****************************************************************** public class clsINI_GetParam { public string sSection; public string sKey; } //****************************************************************** /// //****************************************************************** public class clsINI_SetParam { public string sSection; public string sKey; public string sData; } //■□■□■□■□■□■□■□■□■□ //■ //■□■□■□■□■□■□■□■□■□ //****************************************************************** /// INIデータ取得 //****************************************************************** public static string mGetIniData(string strIniFile_fp, clsINI_GetParam INI_GetParam) { //================================================== // iniファイルから文字列を取得 //================================================== StringBuilder sb = new StringBuilder(1024); GetPrivateProfileString( INI_GetParam.sSection, // セクション名 INI_GetParam.sKey, // キー名 "", // 値が取得できなかった場合に返される初期値 sb, // 格納先 Convert.ToUInt32(sb.Capacity), // 格納先のキャパ strIniFile_fp); // iniファイル名 //================================================== // RETURN //================================================== return sb.ToString(); } //****************************************************************** /// INIデータ設定 //****************************************************************** public static uint mSetIniData(string strIniFile_fp, clsINI_SetParam INI_SetParam) { //================================================== // ファイル //================================================== return WritePrivateProfileString( INI_SetParam.sSection, // セクション名 INI_SetParam.sKey, // キー名 INI_SetParam.sData, // 書き込む値 strIniFile_fp); // iniファイル名 //if (ret == 0) // MessageBox.Show("失敗"); //else // MessageBox.Show("成功"); } }
[C#][Tips][LINQ] 集計(最大,最小,平均,合計,要素数,アキュムレータ)
//********************************************** /// /// [LIST] 集計(最大,最小,平均,合計,要素数,アキュムレータ) /// //********************************************** public static void mAggregation() { var ilList = new<int> List() { 11, 2, 23, 44, 29 }; /* 最大 */ Console.WriteLine(ilList.Max()); /* 最小 */ Console.WriteLine(ilList.Min()); /* 平均 */ Console.WriteLine(ilList.Average()); /* 合計 */ Console.WriteLine(ilList.Sum()); /* 要素数 */ Console.WriteLine(ilList.Count()); /* アキュムレータ(最大) */ /* アキュムレータ(累積器)関数で処理した結果(関数:Math.Max(now, next)) */ // now:処理結果 // next:配列を順に設定 Console.WriteLine(ilList.Aggregate((now, next) => Math.Max(now, next))); /* 参考URL */ //http://ameblo.jp/ns-programming-memo/entry-11064901160.html // http://d.hatena.ne.jp/gsf_zero1/20101005/p1 // http://chomado.com/programming/c-sharp/c-aggregate%E3%82%92%E4%BD%BF%E3%81%86linq ilList = new <int> List() { 2, 3, 4, 5, 6 }; Console.WriteLine(ilList.Aggregate((sum, i) => sum + i)); // sum , i => sum , i // (init) 0 , 2 => 0 + 2 = 2 (=sum) //2 , 3 => 2 + 3 = 5 (=sum) //5 , 4 => 5 + 4 = 9 (=sum) //9 , 5 => 9 + 5 = 14 (=sum) // 14 , 6 => 14 + 6 = 20 (=sum) ilList = new <int>List() { 2, 3, 4, 5, 6 }; Console.WriteLine(ilList.Aggregate(10,(sum, i) => sum + i)); // sum , i => sum , i // (init)10 , 2 => 10 + 2 = 12 (=sum) // 12 , 3 => 12 + 3 = 15 (=sum) // 15 , 4 => 15 + 4 = 19 (=sum) // 19 , 5 => 19 + 5 = 24 (=sum) // 24 , 6 => 24 + 6 = 30 (=sum) }
[C#][Tips][LINQ] OrderBy, ThenBy : 並び替え(sort)
/// /// OrderBy, ThenBy : 並び替え(sort) /// public static void mSortr_01() { //========================== /* */ //========================== var possrc_0 = new[] { 9, 6, 25, 7 }; var sorted_0 = possrc_0.OrderBy(elem => elem).ToList(); sorted_0.ForEach(c => Console.Write(c + ",")); // 6,7,9,25, Console.WriteLine(""); //========================== /* */ //========================== var possrc_1 = new[] { 9, 6, 25, 7 }; var sorted_1 = possrc_1.OrderByDescending(elem => elem); foreach (var item in sorted_1) { Console.WriteLine(string.Join(",", item)); } // 25,9,7,6 Console.WriteLine(""); //========================== /* */ //========================== var possrc = new[] { new { x = 1, y = 2 }, new { x = 3, y = 4 }, new { x = 1, y = 1 } }; var sorted = possrc.OrderBy(elem => elem.x).ThenBy(elem => elem.y); foreach (var item in sorted) { Console.WriteLine(string.Join(",", item.x, item.y)); } // {{ x = 1, y = 1 }, { x = 1, y = 2 }, { x = 3, y = 4 }} Console.WriteLine(""); //========================== /* */ //========================== var possrc_3 = new[] { new { x = 1, y = 2 }, new { x = 3, y = 4 }, new { x = 1, y = 1 } }; var sorted_3 = possrc_3.OrderByDescending(elem => elem.x).ThenByDescending(elem => elem.y); foreach (var item in sorted_3) { Console.WriteLine(string.Join(",", item.x, item.y)); } // {{ x = 3, y = 4 }, { x = 1, y = 2 }, { x = 1, y = 1 }} }
[C#][Tips] LINQ Where:抽出
///================================== /// Where:条件を記載 /// 条件に応じて値を抽出 ///================================== public static void mFilter_01() { //------------------------------------------- /* 余りが1(奇数):elem % 2 == 1 */ //------------------------------------------- List ilSrc = new List { 3, 2, 9, 6 }; var ilFiltered = (ilSrc.Where(elem => elem % 2 == 1)).ToList(); ilFiltered.ForEach(c => Console.Write(c + ",")); // {3, 9} Console.WriteLine(""); //------------------------------------------- /* 余りが1(奇数):elem % 2 == 1 */ //------------------------------------------- var src = new[] { 3, 2, 9, 6 }; var filtered = src.Where(elem => elem % 2 == 1); foreach (var item in filtered) { Console.Write(item + ","); } // {3, 9} }
[C#][Tips] LINQ:Select
Select:対象を処理して、新しくインスタンスを生成。
(Whereは、対象を抽出)
///================================== ///Select : 写像(map) /// 対象を処理して、新しくインスタンスを生成。 ///================================== public static void mMap_01() { //------------------------------------------- /* 2倍:elem * 2 */ //------------------------------------------- List ilSrc = new List { 3, 2, 9, 6 }; var ilMapped = (ilSrc.Select(elem => elem * 2)).ToList(); ilMapped.ForEach(c => Console.Write(c + ",")); // {6, 4, 18, 12} //------------------------------------------- /* 2倍:elem * 2 */ //------------------------------------------- var src = new[] { 3, 2, 9, 6 }; var mapped = src.Select(elem => elem * 2 ); foreach (var item in mapped) { Console.Write(item + ","); } // {6, 4, 18, 12} }
[C#][Tips] プロセス(メモ帳制御:SendKey)
private void button6_Click(object sender, EventArgs e) { //Processオブジェクトを作成する System.Diagnostics.Process p = new System.Diagnostics.Process(); //起動するファイルを指定する p.StartInfo.FileName = "notepad.exe"; //起動する p.Start(); System.Threading.Thread.Sleep(1000); Microsoft.VisualBasic.Interaction.AppActivate("メモ帳"); SendKeys.Send("キー入力{ENTER}テスト"); SendKeys.Send("TAB{TAB}TAB"); //ローカルコンピュータ上で実行されている"notepad"という名前の //すべてのプロセスを取得 System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName("notepad"); //配列から1つずつ取り出す foreach (System.Diagnostics.Process pp in ps) { //IDとメインウィンドウのキャプションを出力する Console.WriteLine("{0}/{1}", pp.Id, pp.MainWindowTitle); } }
[C#][Tips] List 宣言・インスタンス・初期値
//********************************************** /// /// [LIST] 宣言・インスタンス・初期値 /// //********************************************** public static void mList_Init() { //========================== /* 宣言 */ //========================== List<int> ilList; //========================== /* インスタンス */ //========================== ilList = new List(); ilList = new List(new int[3]); //========================== /* 初期値 */ //========================== ilList = new List(new int[3]) { 1, 2, 3 }; ilList = new List() { 1, 2, 3 }; ilList.ForEach(c => Console.Write(c + " : ")); Console.WriteLine(); ilList = new List(Enumerable.Repeat(9, 15)); ilList.ForEach(c => Console.Write(c + " : ")); Console.WriteLine(); }
[C#][Tips] 配列 宣言・インスタンス・初期値
//********************************************** /// [Array] 宣言・インスタンス・初期値 //********************************************** public static void mArray_Init() { //========================== /* 宣言 */ //========================== int[] iaList; //========================== /* インスタンス */ //========================== //iaList = new int[]; // err! iaList = new int[5]; //========================== /* 初期値 */ //========================== iaList = new int[3] { 1, 2, 3 }; iaList = new int[] { 1, 2, 3 }; iaList.ToList().ForEach(c => Console.Write(c + " : ")); Console.WriteLine(); iaList = Enumerable.Repeat(9, 15).ToArray(); iaList.ToList().ForEach(c => Console.Write(c + " : ")); Console.WriteLine(); string saList = new string('*',9); saList.ToList().ForEach(c => Console.Write(c + " : ")); Console.WriteLine(); }
[C#][Tips] 配列の要素をTrim
private void 配列の要素をTrim() { string str = "a; b ; c; d"; string[] sa = Array.ConvertAll(str.Split(';'), delegate(string s) { return s.Trim(); }); sa.ToList().ForEach(c => Console.Write(c+',')); }