概要
var texts = new[] { "ピカチュウ", "カイリュー", "ヤドラン" }; foreach (var n in texts.Select((val, index) => new { val, index })) { Debug.Log(n.index + ":" + n.val); }
foreach文を使用する場合、LINQのSelect関数を使うと周回数が簡単にわかりますが
少しだけソースコードが冗長になります
そこで下記のような拡張メソッドを用意すると
/// <summary> /// IEnumerable の各要素に対して、指定された処理を実行します。 /// </summary> /// <typeparam name="T">IEnumerable の型</typeparam> /// <param name="source">IEnumerable のインスタンス</param> /// <param name="action">IEnumerable の各要素に対して実行する Action デリゲート</param> public static void ForEach<T>(this IEnumerable<T> source, Action<T, int> action) { foreach (var n in source.Select((val, index) => new { val, index })) { action(n.val, n.index); } }
var texts = new[] { "ピカチュウ", "カイリュー", "ヤドラン" }; texts.ForEach((text, index) => Debug.Log(index + ":" + text));
シンプルにループ処理を記述できます