///================================== /// 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
[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+',')); }
[C#][Tips] 配列同士を連結
//using System.Linq; int[] ary1 = new int[] { 1, 2, 3 }; int[] ary2 = new int[] { 4, 5, 6 }; int[] mergedArray = ary1.Concat(ary2).ToArray();
[C#][Tips] オーバーロード/オーバーライド
オーバーロード/オーバーライド
【オーバーロード】
同じ名前のプロシージャを複数個作成する
判別は、「引数の個数」「データの型」など
【オーバーライド】(Overrides)
親クラス(基本クラス)の機能名を変更せず、内容を再定義する
[C#][Tips]コンストラクタ/デストラクタ
コンストラクタ/デストラクタ
【コンストラクタ】
オブジェクトが作成されたときに、自動的に実行されるプロシージャ
New プロシージャ
【デストラクタ】
オブジェクトが破棄される直前に自動的に実行されるプロシージャ
Finalize プロシージャ
[C#][Tips]データグリッドビュー:数値でソート
[データグリッドビュー] 数値でソート
SortCompareイベント
SortCompareイベント