質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

LINQ

LINQとはLanguage INtegrated Queryの略で、「統合言語クエリ」という意味です。C#やVisual Basicといった言語のコード内に記述することができるクエリです。

Q&A

解決済

2回答

13339閲覧

C# 簡潔・明瞭な繰り返し処理

teraotailnosuke

総合スコア52

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

LINQ

LINQとはLanguage INtegrated Queryの略で、「統合言語クエリ」という意味です。C#やVisual Basicといった言語のコード内に記述することができるクエリです。

0グッド

1クリップ

投稿2017/01/22 06:35

編集2017/01/22 06:35

C#(6.0)で単純な繰り返し処理、例えば

Console.WriteLine("Hello");

を10回繰り返す書き方にはどんな方法がありますか?
同じ処理を指定回数繰り返したいだけで、何回目のループかなどという情報は使いません。

CSharp

1// ループの変数が無駄 2for (int i = 0; i < 10; i++) 3{ 4 Console.WriteLine("Hello"); 5}

繰り返し用の拡張メソッド等を新たに作る方法は無しでお願いします。
その場に直接書けて、やっていることが明瞭な方法が良いです。
理想のイメージはこんな感じです。

CSharp

1// ループ変数不要、繰り返しの開始値不要 2繰り返し(10).処理({ 3 Console.WriteLine("Hello"); 4 });

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

C#

1Enumerable.Range(1, 10) 2 .ToList() 3 .ForEach(_ => Console.WriteLine("Hello")); 4 5Enumerable.Repeat("Hello", 10) 6 .ToList() 7 .ForEach(h => Console.WriteLine(h));

ForEachがListのメソッドなので、間にToList()をはさむ必要があるのがちょっと惜しいですよね。
拡張メソッドは無しとの条件でしたが、IEnumerableの拡張メソッドとしてForEachを用意しておくというのもアリかもしれません。

Console.WriteLine("Hello") の部分が戻り値を伴う処理である場合は、ForEachの代わりにSelectを使うとスッキリします。

投稿2017/01/22 07:55

oika

総合スコア425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

c#

1Array.ForEach(new object[5],_=>Console.WriteLine("hoge"));

投稿2017/01/23 12:47

編集2017/01/23 12:49
ozwk

総合スコア13512

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問