(1) C#のvarの使いどころは?初めての方に向けてサンプルプログラムを使ってご紹介
(1-1) ArrayListに異なるデータ型が混在しているパターン
(1-2) LINQのクエリ結果取得
(1) C#のvarの使いどころは?初めての方に向けてサンプルプログラムを使ってご紹介
(1-1) ArrayListに異なるデータ型が混在しているパターン
ArrayListに複数のデータ型の値をAddしていったケースなどは、値を取り出すのが通常であれば手間ですが、var変数でループした値を受け取る事で、異なる型が混在していてもループ処理を行う事ができます。
(サンプルプログラム1)
using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RP_IT0198_var_usage { class Program { static void Main(string[] args) { ArrayList numlist = new ArrayList(); //配列にstringとintを混ぜてAddする numlist.Add("One"); numlist.Add(2); numlist.Add("Three"); numlist.Add(4); numlist.Add("Five"); numlist.Add(6); //varで受け取ることでループできる foreach (var num in numlist) { Console.WriteLine(num); } } } }
(図111)実行結果
(1-2) LINQのクエリ結果取得
LINQのクエリからは様々な型のデータが返される可能性があるため、それらの値を一つの変数で受け取れるのはこの「var型」のみになります。
(サンプルプログラム2)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SampleProgram { class Program { static void Main(string[] args) { //探索対象の配列を定義 string[] big4_names = { "Roger Federer", "Rafael Nadal", "Novak Djokovic", "Andy Murray" }; //探索のクエリを定義 //【ポイント】結果はvar変数で受け取る // 今回の例ではすぐ上で定義しておりstring型である事は明白ですが // 実際クエリ発行する際は外部から取得するためデータ型に確証がないケースでvarが活躍 var myLinqQuery = from name in big4_names where name.Contains('e') select name; //クエリの実行 foreach (var name in myLinqQuery) Console.WriteLine(name + " "); } } }
(図121)実行結果