Linq・ラムダ式

【C#】【Linq】Linq で LIKE句 を表現する

Linq で LIKE句 前方一致 * StartsWith() を使用する サンプル // 店舗クラス class Shop { public int ShopId; public string ShopName; } private void button1_Click(object sender, EventArgs e) { var shops = new[] { new Shop() {ShopId = 1, ShopNam…

【C#】【Linq】Linq で IN句 を表現する

Linq で IN句 * ちょっと特殊なやり方ですが、Contains()を使って、IN句を表現できる 構文 var 【結果】 = 【対象のリスト】.Where(x => new[] {【IN句の条件リスト】}.Contains(【対象の項目】)); // 以下のように、分けても書ける(この方が分かりやすいか…

【C#】【Linq】Linq を使う上での作法

Where をできる限り先に記述する * パフォーマンスを考慮して、Where は、できる限り、先に記述する

【C#】【SQL】【Linq】Linq to SQL ~ストアド編~

サンプル テーブル Personテーブル CREATE TABLE [dbo].[Person]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NULL, [Address] [nvarchar](50) NULL, [Email] [nvarchar](50) NULL, [Age] [int] NULL ) ON [PRIMARY] Employeeテーブル CREAT…

【C#】Linqメソッド 要素を取り出す ~ Skip / Take編 ~

■ Skip / Take * Skip:先頭から指定された数の要素をスキップし、残りを返す * Take:先頭から指定された数の要素を返す http://d.hatena.ne.jp/chiheisen/20111031/1320068429 サンプル private void button1_Click(object sender, EventArgs e) { var sampl…

【C#】Linqメソッド 合計を求める/集計する ~SUM編 ~

合計を求める * Sum()を使用する 構文 var totalStock = productDetails.Sum(x => x.Stock); サンプル 入れ子になった数量の合計を求める public partial class Form1 : Form { IList<Product> products; public Form1() { InitializeComponent(); this.products = ne</product>…

【Linq】配列の扱い

特定の条件に一致する要素を一つ取り出す [1] FirstOrDefault() * FirstOrDefault()で、条件に一致した要素を取り出すことができる * First()では、要素が見つからなかった場合、例外が発生してしまうことに注意 サンプル DateTime[] source = { new DateTim…

【C#】【Linq】OrderByメソッド、ThenByメソッド

■ OrderByに関するメソッド OrderByメソッド、OrderByDescendingメソッド * Linqにおいて、昇順、降順の並び替えは、OrderByメソッド、OrderByDescendingメソッドで行う ThenByメソッド、ThenByDescendingメソッド * OrderByメソッド、OrderByDescendingメソ…

【C#】【Linq】Anyメソッド / AsParallel

■ Any 構文 bool exists = [データセット].[テーブル].Any(x => x.[テーブルの項目] == [比較対象]) サンプル this.resultTableAdapter.Fill( mdbDataSet.ObservationResult); foreach (masterDataSet.PersonRow row in masterDataSet.Person) { if (testDat…

【C#】【Linq】【ACCESS】ACCESSデータベースでLinqを使ってみた

ACCESSデータベースでLinqを使う 前準備 1. Accessで、テーブルを作っておく(ファイル名「testDb.accdb」とする) 2. Visual Studioで、[新しいデータ ソースの追加]-[データベース]-[次へ]-[新しい接続]を選択 3. 接続の追加画面において、以下のように設定…

【C#】Linqメソッド データ削除 ~ DELETE編 ~

データ削除(DELETE) 手順 1. テーブルから該当する行を取得 2. DeleteOnSubmit()メソッドを使用 * 一気に複数の行を削除するには、DeleteAllOnSubmit()メソッドを使用 サンプル あとで書く 参考資料 http://thinkit.co.jp/free/article/0801/9/3/

【C#】Linqメソッド データ修正 ~ UPDATE編 ~

データ修正(UPDATE) * エンティティのプロパティを変更すれば更新対象とし、その後、SubmitChanges()すれば更新される サンプル 前準備 以下の例については、 http://blogs.yahoo.co.jp/dk521123/16895242.html を前もって行っています。 private void butto…

【C#】Linqメソッド 最大値を求める ~ MAX編 ~

最大値を求める * Max()を使用する サンプル 下準備 以下の例については、 http://blogs.yahoo.co.jp/dk521123/16895242.html を前もって行っています。 Idの最大値を求める using (DataClasses1DataContext context = new DataClasses1DataContext()) { lon…

【C#】Linqメソッド データ追加・挿入 ~ INSERT編 ~

データ追加・挿入(INSERT) * InsertOnSubmit()メソッドおよびSubmitChanges()を使用する * InsertOnSubmit()を実行しただけではデータベースに反映されず、 SubmitChanges()を呼び出した時点で反映される(遅延実行?) * 複数の行をまとめて挿入したい場合…

【C#】【Linq】LINQメソッド ~ 2つのキーでJoin編 ~

■ 2つのキーでJoin サンプル * 2つのキーでJoinするには、条件部分を『new { [条件1] , [条件2], ...}』とする // 商品クラス class product { public int id; public int shopId; public string name; } // 値段クラス class productPrice { public int…

【C#】Linqメソッド ~ 内部結合編 (Join & GroupJoin) ~

■ Join(内部結合) サンプル 商品クラス class product { public int Id; public string name; } // 値段クラス class productPrice { public int Id; public int price; } private void button2_Click(object sender, EventArgs e) { product[] productList …

【C#】Linqメソッド ~ 外部結合 (Left Outer Join) 編 ~

■左外部結合 (Left Outer Join) サンプル class product { public int Id; public string name; } class productPrice { public int Id; public int price; } class productStock { public int Id; public int stock; } private void button6_Click(object s…

【C#】Linqメソッド データ参照および取得 ~ SELECT編 ~

下準備 以下の例については、 http://blogs.yahoo.co.jp/dk521123/16895242.html を前もって行っています。 データ参照(1):SQLのSELECTみたいにデータ取得する * Select()を使用する 例 private void button1_Click(object sender, EventArgs e) { int[] …

【C#】【SQL】【Linq】Linq to SQL ~はじめに・概要編~

Linq (Language Integrated Query:統合言語クエリ) * クエリ = 問い合わせ 利点 * 問い合わせ時に、コンパイラによる文法チェックが可能 => その構文が正しいかどうかは実行するまで分からない(コンパイル時に構文エラーを検出できる) * IntelliSense(入力…

【C#】【SQL】【Linq】Linq to SQL ~入門編~

Linq to SQLについて Linqを使ったクエリ操作は、以下の3つの手順を踏む [1] データソースを取得する [2] クエリを作成する [3] クエリを実行する サンプル 事前準備 [1] SQL Serverにおいて、以下「サンプルテーブル」のようなテーブルを作成しておき、デー…

【C#】ラムダ式

■ ラムダ式 * メソッドを宣言することなく、メソッドを簡略化にして記述できる メソッドを普通に記述 int GetAge(Person p) { return p.Age; } bool IsMale(Person p) { return p.Sex == "Male"; } メソッドをラムダ式で記述 (p) => p.Age (p) => p.Sex == "…