「進捗・どう・です・か」をランダムに表示し「進捗どうですか」が完成したら煽ってくるプログラム(C#/LINQ)


「進捗・どう・です・か」をランダムに表示し「進捗どうですか」が完成したら煽ってくるClojure
「進捗・どう・です・か」をランダムに表示し「進捗どうですか」が完成したら煽ってくるプログラム
「進捗・どう・です・か」をHaskellで書いてみた
golang の進捗どうですか
「進捗・どう・です・か」をランダムに表示し「進捗どうですか」が完成したら煽ってくるプログラム(C#で挑戦)

ランダム生成を.OrderBy(x => Guid.NewGuid())で手抜きでやってみた。

Program.cs
using System;
using System.Linq;

namespace ShinchokuDoudesuka
{
    class Program
    {
        static void Main()
        {
            string[] words = { "進捗", "どう", "です", "か" };
            var count = 0;
            var tmp = "";
            while ((tmp = string.Join("", words.OrderBy(x => Guid.NewGuid())))
                != string.Join("", words))
            {
                Console.Write(tmp + " ");
                count++;
            }

            Console.WriteLine("");
            Console.WriteLine(@"
 _人人人人人人人_
 >進捗どうですか<
  ̄Y^Y^Y^Y^Y^Y^Y ̄");
            Console.WriteLine(count + "回で煽られました");
        }
    }
}

解釈を間違えていたようなので修正

Program.cs
using System;
using System.Linq;

namespace ShinchokuDoudesuka
{
    class Program
    {
        static void Main()
        {
            string[] words = { "進捗", "どう", "です", "か" };
            var tmp = "";
            var result = "";
            while (!result.EndsWith(string.Join("", words)))
            {
                Console.Write((tmp = words.OrderBy(x => Guid.NewGuid()).First()));
                result += tmp;
            }

            Console.WriteLine(@"

 _人人人人人人人_
 >進捗どうですか<
  ̄Y^Y^Y^Y^Y^Y^Y ̄");
            Console.WriteLine(result.Length + "文字で煽られました");
        }
    }
}