スキップしてメイン コンテンツに移動

C# LINQ サンプル

C# LINQ サンプル

概要

compile and  run.
compile and  run.

 後輩と久しぶりにお話したら、C# で SQL の話題が出たので、C# で SQL を叩くのを作ろうと思ったけれど、LINQ という機能が C# ver 3 から追加されたそうなので、その新機能の動作確認サンプルを作ってみた。

ソースコード

/*
 * 後輩と話していたら、C# で SQL の話題が出たので、
 * C# で SQL を叩くのを作ろうと思ったけれど、LINQ という機能が C# ver 3 から追加されたそうなので、
 * その新機能の動作確認サンプルを作ります。
 * 2014 / 12 / 04
 * jskny / risdy.net
*/


using System;
using System.Linq;


class Test {
 public static int Main()
 {
  // 売上データベース
  // id, name, お気に入り登録数, 買われた数
  var Database = new[] {
   new { id = 1, name = "つけ麺", fav = 1, bought = 53 },
   new { id = 2, name = "タンメン", fav = 10, bought = 641 },
   new { id = 3, name = "イケメン", fav = 30, bought = 42 },
   new { id = 4, name = "ラーメン", fav = 400, bought = 42 },
   new { id = 5, name = "ぽよ麺", fav = 400, bought = 869 },
   new { id = 6, name = "ぽぽぽ~ん", fav = 20, bought = 1630 },
   new { id = 7, name = "塩ラーメン", fav = 8, bought = 352 },
   new { id = 8, name = "味噌ラーメン", fav = 90, bought = 6885 },
   new { id = 9, name = "お寿司", fav = 3, bought = 35 }
  };


  // 全要素出力
  System.Console.WriteLine("VIEW ALL DB.");
  foreach (object t in Database) {
   System.Console.WriteLine(t);
  }


  // 500回以上買われた商品名のみ出力
  System.Console.WriteLine("VIEW OVER 500 BOUGHT.");
  var boughtUp500 =
   from t in Database
   where t.bought >= 500
   orderby t.id
   select t.name;
  foreach (var t in boughtUp500) {
   System.Console.WriteLine(t);
  }


  // お気に入り登録数が100より多いものを取り出す。
  System.Console.WriteLine("VIEW FAV 100 BOUGHT.");
  var favUp100 =
   from t in Database
   where t.fav >= 100
   orderby t.id
   select t.name;
  foreach (var t in favUp100) {
   System.Console.WriteLine(t);
  }


  return (0);
 }
}

コンソール

VIEW ALL DB.
{ id = 1, name = つけ麺, fav = 1, bought = 53 }
{ id = 2, name = タンメン, fav = 10, bought = 641 }
{ id = 3, name = イケメン, fav = 30, bought = 42 }
{ id = 4, name = ラーメン, fav = 400, bought = 42 }
{ id = 5, name = ぽよ麺, fav = 400, bought = 869 }
{ id = 6, name = ぽぽぽ~ん, fav = 20, bought = 1630 }
{ id = 7, name = 塩ラーメン, fav = 8, bought = 352 }
{ id = 8, name = 味噌ラーメン, fav = 90, bought = 6885 }
{ id = 9, name = お寿司, fav = 3, bought = 35 }
VIEW OVER 500 BOUGHT.
タンメン
ぽよ麺
ぽぽぽ~ん
味噌ラーメン
VIEW FAV 100 BOUGHT.
ラーメン
ぽよ麺

感想

LINQ をうまく使えば楽しそうです。ただまぁ C# を布教していた頃が懐かしいw

このブログの人気の投稿

記述試験の書き方(仮)

記述試験の書き方(仮) 1,まえがき   法学部の試験では記述式の試験が出てくる。   その試験では、あるテーマについて自由に論ぜよとされている。 しかし、論ぜよと言われても、どのように論じればいいのか、すなわち、記述の仕方について教わったことがない(よくよく考えると、法的文章力を習得させる事だけが目的の授業はないと思われる)。   本稿では、私自身が法学畜になり、見聞きし、実際に活用している論述方法についてまとめている、はずである。その要点は、①条文、判例、学説を使う。②単なる事実と法的事実を区別する。③文章内に一貫性を持たせる。である。 法律と、プログラミング

本サイトの今後について

告知 本サイトは今後更新されることは、おそらくありません。 過去記事等はこのまま放置するつもりです。内容の陳腐化並びにその正確性等については保証はできません。自己責任で活用いただければと思います。 This site won't update in future. And Thank's everyone. new site -> sysrigar

node.js で SQLite3 を使用するコードを書くときの予備録

node.js で SQLite3 を使用するコードを書くとき、予備録 まず、非同期処理。 C言語や Perl のように上から下に処理が続くと決して思ってはいけない。 SQLite3 の each は SQL 文実行完了時に呼び出す関数を指定できる SQLite をインストールします、 npm install sqlite3 [test.js] var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(':memory:'); db.serialize(function() { db.run("CREATE TABLE lorem (info TEXT)"); var stmt = db.prepare("INSERT INTO lorem VALUES (?)"); for (var i = 0; i < 10; i++) { stmt.run("Ipsum " + i); } stmt.finalize(); var listInfo = new Array(); db.each("SELECT rowid AS id, info FROM lorem", function(err, row) { var tmp = new Object(); tmp.id = row.id; tmp.info = row.info; console.log("[ROW]\t" + row.id + ": " + row.info); listInfo.push(tmp); }, function() { // Each 完了時に呼び出される for (var i = 0; i < listInfo.length; i++) { console.log("[BUF]\t" + listInfo[i].id + ": " + listInfo[i].info); } console.lo