お疲れ様です。たなしょです。
今日はLINQのプログラムを書きました。
写経したおかげである程度分かった気がしてきました。
Containsメソッド
指定した文字が含まれているか判定します。文字検索とかで使えそうです。
string型は値が変わるたびに新たなインスタンスを生成する
string name = "test1"
name = "test2"
nameの中身が変わったのではなくインスタンスの参照先が変わります。
object型
object ob1 = 100;
object ob2 = 100;
bool b2 = ob1 == ob2; // b2はfalse
foreachで多重配列も順番に出力できる
int[,] Test2D = new int[3,2] {{1, 2}, {3, 4}, {5, 6}};
foreach (int i Test2D)
{
Console.WriteLine("{0}", i);
}
TryParseメソッド
数値に変換できた場合はtrue, それ以外はfalse。エラー回避に便利そうです。
イテレーターの使い方
土日以外の曜日を1日ずつ取得して、年月日を表示することを10回繰り返すプログラムです。
こんな感じでイテレーターを使っていくんですね
class Sample
{
static void Main()
{
foreach(DateTime dt in Test(10))
{
Console.WriteLine(dt.ToString("yyyy年MM月dd日(ddd)"));
}
static IEnumerable Test(int days)
{
DateTime dt = DateTime.Today;
for (int i =0; i < days;)
{
if ((dt.DayOfWeek != DayOfWeek.Saturday) &&
(dt.DayOfWeek != DayOfWeek.Sunday))
{
yield return dt;
i++;
}
dt = dt.AddDays(1);
}
}
}
}
LINQの使い方
初めてLINQのコードを書きました。これは2以上4以下の条件でデータを抽出します。
こう書いてみるとデータセットを条件つけて抽出する際に見やすいコードになりますね。
class Sample
{
static void Main()
{
int[] numbers = { 1, 2, 3, 4, 5 };
var query = from n
in numbers
where n >= 2 && n <= 4
select n;
foreach (var a in query) Console.WriteLine(a);
}
}
最後に
LINQの書き方が理解できました。
これでC#の基礎となる部分は少しは理解できたと思います。
明日からオブジェクト指向プログラミングを軽く再度復習します。