5

ReadOnlyCollection コンストラクターには、IList を指定する必要があります。しかし、連結して新しい ROC を生成したい ROC がいくつかある場合、Concat メソッドは IEnumerable を返します。これは、ROC コンストラクターに渡す有効な引数ではありません。

では、他の ROC を連結して ROC を作成するにはどうすればよいでしょうか。

これまでのところ、これは私が思いつくことができる最高のものです:

ReadOnlyCollection<T> ROCConcat<T> ( ReadOnlyCollection<T> a, ReadOnlyCollection<T> b)
{
    List<T> tmp = new List<T>();
    foreach (T f in a.Concat(b))
        tmp.Add(f);
    return new ReadOnlyCollection<T>(tmp);
}
4

2 に答える 2

11

から新しいものを作成しList<>ますIEnumerable<>:

return new ReadOnlyCollection<T>(a.Concat(b).ToList());

または私が好む:

return a.Concat(b).ToList().AsReadOnly();

これらは基本的にあなたが思いついたものと同じことをしますが、目には少し楽です.

于 2014-01-02T20:02:32.220 に答える