0

MapMany の実装をテストしようとしていますが、出力の取得に問題があります。

コードは次のとおりです。

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

namespace ConsoleApplication3
{   
    static class E
    {
         static void Main()
        {

            var sequence = new int[] { 0, 1, 2, 3, 4 };
            var result = sequence.MapMany(
            s => s % 2 == 1 ? new int[] { s } : new int[] { });
            Console.WriteLine("{0}", result);
         }


        public static IEnumerable<U> MapMany<T,U> 
        (this IEnumerable<T> sequence, Func<T,IEnumerable<U>> func) {

            foreach (T item in sequence) {
               IEnumerable<U> sequence2 = func(item);

                    foreach (U item2 in sequence2) {
                         yield return item2;
                    }
                }


        }



    }
     }

コードを実行しようとすると、次の出力が表示されます。

ConsoleApplication3.E+<MapMany>d__2'2[System.Int32,System.Int32]

誰でもこれを修正する方法を知っていますか?

乾杯

4

2 に答える 2

1

例えば、

result.ToList().ForEach(res=>Console.WriteLine("{0}", res));
于 2012-09-25T11:19:24.890 に答える
0

Console.WriteLine を変更します。出力は正しいです。

編集: result.ToList().ForEach(x => Console.Write(x + ""));

于 2012-09-25T11:17:32.803 に答える