C#のLINQで扱う無限リスト
今日は μ’s final LoveLiveの最終日です
C#で無限リストを扱いたい時の例です。
using System;
using System.Collections.Generic;
using System.Linq;
static class MuseSaying {
public static IEnumerable<IEnumerable<string>> SayInfinite() {
var words = new [] {
"ファイトだよ!"
, "ラブアローシュートッ!!"
, "ヨキニハカラエミナノシュー!"
, "ダレカタスケテー!!"
, "にゃー!!"
, "イミワカンナイ!!"
, "にっこにっこにー!"
, "ぷしゅっ!"
, "ハラショー"
}
.Select(x => string.Format(@"\{0}/", x));
while(true) {
yield return words;
}
}
public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> xs) {
return xs.OrderBy(_ => Guid.NewGuid());
}
}
class Muse {
public static void Main(string[] args) {
MuseSaying.SayInfinite()
.Select(xs => xs.Shuffle())
.Take(100)
.ToList().ForEach(xs => xs.ToList().ForEach(Console.WriteLine));
}
}
ShuffleメソッドはIEnumerableをシャッフルするShuffleメソッドです。
LazyでInfinityなListなのですが、Take()しないと無限に評価されてしまうので
Take()やTakeWhile()で打ち止めて上げてください。
μ’sの皆さん、今日という日をおめでとうございます!! そしてありがとうございます!!
μ’sのみんなからもらった大切なものを大切にしていきます…!
以上がC#のLINQで無限リストを扱う話でした。
参考URL
ラブライブ!μ's Final LoveLive!〜μ’sic Forever♪♪♪♪♪♪♪♪♪〜
LINQメソッドにShuffleを追加する
MSDN System.Linq.Enumerable
C#でフィボナッチ数列を求める
Author And Source
この問題について(C#のLINQで扱う無限リスト), 我々は、より多くの情報をここで見つけました https://qiita.com/aiya000/items/b84a71859c706238524d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .