[プログラム板] C#, C♯, C#相談室 Part47
■ このスレッドは過去ログ倉庫に格納されています
0682デフォルトの名無しさん
2008/08/06(水) 20:56:28var fizz = Fizz();
var buzz = Buzz();
foreach (var i in Enumerable.Range(1, max)) {
bool isFizz = fizz.First();
bool isBuzz = buzz.First();
fizz = fizz.Skip(1);
buzz = buzz.Skip(1);
if (isFizz && isBuzz) {
yield return "FizzBuzz";
} else if (isFizz && !isBuzz) {
yield return "Fizz";
} else if (!isFizz && isBuzz) {
yield return "Buzz";
} else {
yield return i.ToString();
}
}
}
こんな感じのメソッドを作ってみたのですが、複数のIEnumerableを並行して進めながら処理するforeachみたいなのってないのでしょうか?
自前でFizzとBuzzを1つずつ進めてるのがいまいちスマートじゃない気がして、複数のIEnumerableを並行して進める手軽な方法ってないでしょうか?
foreach (var i, isFizz, isBuzz in Enumerable.Range(1, max), Fizz(), Buzz()) {
とかみたいな雰囲気でまとめて書く方法ってないですか?
■ このスレッドは過去ログ倉庫に格納されています