2014年07月09日

C#でリストを逆順に表示

   このエントリーをはてなブックマークに追加 Clip to Evernote
どう書く?orgに感謝を込めて」シリーズ その23

■問題 (出題者:にしお さん)
簡単な問題です。
リスト状のものを逆順に表示するプログラムを書いてください。

簡単すぎる問題ですが、以下のようなジェネリックメソッドを書きました。
「逆順に表示」ということなので、リストそのものは変更しないというふうに理解しました。
そのため、逆順を求めるのに、List<T>.Reverse()メソッドではなく、LINQの Reverseメソッドを使っています。 IEnumerable を引き数にしているので、配列でもList<int>でもOKです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Doukaku.Org {
    class Program {
        static void Main(string[] args) {
            List<int> nums = new List<int> { 9, 8, 7, 6, 5, 4, 3, 2, 1 };
            ReversePrint(nums);
            string[] strs = new[] { "abc", "def", "hij", "xyz"  };
            ReversePrint(strs);
            nums.ForEach(n => Console.WriteLine(n));
            Console.ReadLine();
        }

        // 引き数listの並び順は変更されない。あくまでも表示だけ。
        static void ReversePrint<T>(IEnumerable<T> list) {
            foreach (var x in list.Reverse())
                Console.WriteLine(x);
        }
    }
}


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52377029