俳句プログラミングでC# をするならLINQも使いたいですっ!

By | Date : 2015/04/20 ( Last Update : 2016/04/30 ) | 208 views

Myoga-SB-SDF-A2

Hello~! ミョウガです!

今回はC#とLINQを使って俳句を縦書きで出力してみましたよっ!

 

1. C#とLINQで俳句を縦書きで出力するプログラム

※このプログラムは https://gist.github.com/Myoga1012/f8f57b5239f945af569e  及び https://paiza.io/projects/b36V-DRQhLmPnxi2oNMtKg で公開されています(後者はクエリ式をメソッドに変更しています)。

 

動作としては、以下の通りです。

  1. 俳句の文字列をカンマで分割してList<string>型のリスト(hHaiku)にまとめ、各句の中で最も多い文字数を要素数とする空文字リスト(vHaiku)を別に作成します。
  2. hHaikuの各要素において文字数がvHaikuの要素数になるように、PadRightメソッドを使って不足分を全角スペースでパディングします。それを一旦char型配列に変換し、Enumerable.Selectメソッドを使って1文字1文字をstring型に変換します。
  3. 2.で作成したリストとvHaikuをEnumerable.Zipメソッドで、各要素同士を結合してvHaikuに代入します。この時、要素の並びを「2.で作成したリスト」→「vHaiku」の順にします。
  4. 最後にvHaikuの各要素において、Console.WriteLineメソッドで出力します。

2.で各句にパディング処理をした理由として、Enumerable.Zipは片方のリストの要素数が少ないと、その要素数分のみ適用されないので、要素数を各句の中で最も多い文字数にそろえるためですよっ!

3.で2つのリスト各要素の並びを逆にして結合することで、4.の出力時に右縦書きになりますっ!

 

paiza.IO上で実行すると、こんな感じです。LINQって便利だな~♪(某クッキングシートのcm風)

haiku-cslinq

 

ではでは、See youですよっ♪

 

この記事をシェアする
Chronoir.netのRSSフィードを購読する

About : ミョウガ(Myoga)

Hello~! 「ミョウガ」です。よろしくお願いします!(≧▽≦)/ 主にC#/XAML/C++などをメインにプログラミングやアプリの開発をしています。好きな物はカフェラテとハーブティ、趣味は写真撮影と艦これです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*