C#3.0のイテレータ/列挙子のセクションを簡単に読んだことがありますが、それを理解するのにまだ苦労しています。それらの名前から、私の最初の考えは、イテレータがEnumerableオブジェクトのグループを反復処理することです。私は正しい方向に進んでいますか?もしそうなら、?のような一般的なジェネリックコレクションはList<T>
どうですか?Listは、一部の操作中にIteratorを作成/使用しますか?Tは自動的に列挙可能ですか?キャストはいますか?一方はもう一方と関係がありますか?
やや関連性のあるメモで、MVCを学習しているときに、次のようなコードを見ました。
public Article GetArticle(int id)
{
return _siteDB.Articles.SingleOrDefault(a => a.ArticleID == id);
}
public IEnumerable<Article> GetArticle(string title)
{
return _siteDB.Articles.Where(a => a.Title.StartsWith(title)).AsEnumerable<Article>();
}
返品タイプがあると何がIEnumerable<T>
得られますか?
編集:さて、私はそれを取得し始めていると思います。私の混乱はイテレータに残っています。この本は、それらを列挙子のプロデューサーとして説明しています。それが実際にどこで起こっているのかわかりませんyield return
。各歩留まりは新しい列挙子を作成しますか?