0

次の拡張メソッド (既存の StackOverflow question から) を使用して、既存の列挙型を 2 つに分割しています。

public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts)
{
    int i = 0;
    var splits = from item in list
                 group item by i++ % parts into part
                 select part.AsEnumerable();
    return splits;
}

私は次のような方法を使用しています:

//accountIds is simply an IEnumerable<string>
var foo = accountIds.Split(2).ToList();

アプリケーションを実行すると、このメソッドはうまく機能しているように見えます。ただし、アプリケーションをデバッグすると、このコード行は常に例外をスローします。

Object reference not set to an instance of an object.

デバッグ中になぜこのメソッドが例外をスローするだけなのか、非常に混乱しています。

4

1 に答える 1

0

これについてはよくわかりませんが、最初に評価する必要があると思います。.ToArray()または.ToList()メソッドを使用できます。

キャプチャされた変数に関する Jon Skeetブログをご覧ください。

于 2013-02-27T03:18:47.813 に答える