(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)実行結果
