4

を返す外部ライブラリを使用していますIEnumerable。それらを受け取ったら、いくつかのモデルを最後に追加したいと思います。IListこれは、または他のコレクションを使用している場合にのみ可能と思われます。したがって、メソッドIEnumerableを使用して をリストに変換しようとすると、が返されます。それは私が期待したものではありませんか?私は正しいものを使用していますか?または、他に何が私の問題を解決しますか?.ToList()IEnumerable.ToList()

これは私がこれまで持っている私のコードです:

IList<Models.Browser.Language> languages = GetLanguages(dateDrom, dateTo).ToList();
IList<Models.Browser.Language> primaryItems = languages.Take(10);

この最後の行は、次のようなエラーを生成します。 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<Bogus.Models.Browser.Language>' to 'System.Collections.Generic.IList<Bogus.Models.Browser.Language>'. An explicit conversion exists (are you missing a cast?)

前もって感謝します!

4

1 に答える 1

24

の値languagesはへの参照List<>ですが、それを呼び出しTake(10)ているので、リストは返されません。

ToList()電話を移動するだけです。

IEnumerable<Models.Browser.Language> languages = GetLanguages(dateDrom, dateTo);
IList<Models.Browser.Language> primaryItems = languages.Take(10).ToList();

または、1回の呼び出しでそれを実行します。

var primaryItems = GetLanguages(dateDrom, dateTo).Take(10).ToList();

また、これは完全には正しくありません。

それらを受け取った後、最後にいくつかのモデルを追加したいと思います。

別の方法は、を使用することConcatです。例えば:

var items = GetLanguages(dateDrom, dateTo).Take(10).Concat(fixedItems);
于 2012-05-24T10:03:32.197 に答える