ソースコード
using System.Collections.Generic;
using System.Linq;
public static class IEnumerableExt
{
public static IEnumerable<IEnumerable<T>> Chunks<T>
(
this IEnumerable<T> self,
int size
)
{
while ( self.Any() )
{
yield return self.Take( size );
self = self.Skip( size );
}
}
}
使い方
var list = new []
{
"フシギダネ" ,
"フシギソウ" ,
"フシギバナ" ,
"ヒトカゲ" ,
"リザード" ,
"リザードン" ,
"ゼニガメ" ,
"カメール" ,
"カメックス" ,
};
foreach ( var n in list.Chunks( 3 ) )
{
Console.WriteLine( string.Join( ", ", n.ToArray() ) );
}
結果
フシギダネ, フシギソウ, フシギバナ
ヒトカゲ, リザード, リザードン
ゼニガメ, カメール, カメックス
参考サイト様
[C#][VB] LINQでコレクションをチャンク(N個ずつ)に分割 │ Web備忘録