将linq更改为收益率

将linq更改为收益率,linq,foreach,yield-return,Linq,Foreach,Yield Return,有没有可能改变这个 var movies = rawMovies.Movies.Select(m => { var movie = new Movie { Id = m.Id, Title = m.Title, Year = m.Year, MpaaRating = m.MpaaRating, Runtime = m.Runtime, CriticsConsensus = m.Criti

有没有可能改变这个

var movies = rawMovies.Movies.Select(m => {
    var movie = new Movie {
        Id = m.Id,
        Title = m.Title,
        Year = m.Year,
        MpaaRating = m.MpaaRating,
        Runtime = m.Runtime,
        CriticsConsensus = m.CriticsConsensus,
        Synopsis = m.Synopsis,
        ReleaseDate = m.ReleaseDates != null ? new ReleaseDate { Dvd = m.ReleaseDates.Dvd, Theater = m.ReleaseDates.Theater } : null,
        Rating = m.Ratings != null ? new Rating { AudienceScore = m.Ratings.AudienceScore, CriticsScore = m.Ratings.CriticsScore } : null,
        AlternateId = m.AlternateIds != null ? new AlternateId { Imdb = m.AlternateIds.Imdb } : null,
        Poster = m.Posters != null ? new Poster { Detailed = m.Posters.Detailed, Original = m.Posters.Original, Profile = m.Posters.Profile, Thumbnail = m.Posters.Thumbnail } : null,
        Link = m.Links != null ? new Link { Alternate = m.Links.Alternate, Cast = m.Links.Cast, Clips = m.Links.Clips, Reviews = m.Links.Reviews, Self = m.Links.Self, Similar = m.Links.Similar } : null,
        Genres = m.Genres != null ? (HashSet<Genre>)m.Genres.Select(g => new Genre { Name = g }) : new HashSet<Genre>()
    };

    foreach (var castMember in m.AbridgedCast) {
        var person = new Person { Id = castMember.Id, Name = castMember.Name };
        if (castMember.Characters != null) {
            foreach (string name in castMember.Characters) {
                var character = new Character { Name = name, Person = person, Movie = movie };
                movie.Characters.Add(character);
            }
        }
    }

    return movie;                           
});

return movies;
var movies=rawMovies.movies.Select(m=>{
var movie=新电影{
Id=m.Id,
Title=m.Title,
年=百万年,
mparating=m.mparating,
运行时=m.运行时,
CriticsConsensus=m.CriticsConsensus,
概要,
ReleaseDate=m.ReleaseDates!=null?新的ReleaseDate{Dvd=m.ReleaseDates.Dvd,Theater=m.ReleaseDates.Theater}:null,
评级=m.Ratings!=null?新评级{AudienceScore=m.Ratings.AudienceScore,CriticsScore=m.Ratings.CriticsScore}:null,
AlternateId=m.AlternateId!=null?新的AlternateId{Imdb=m.AlternateId.Imdb}:null,
Poster=m.Posters!=null?新海报{Detailed=m.Posters.Detailed,Original=m.Posters.Original,Profile=m.Posters.Profile,Thumbnail=m.Posters.Thumbnail}:null,
Link=m.Links!=null?新链接{Alternate=m.Links.Alternate,Cast=m.Links.Cast,Clips=m.Links.Clips,Reviews=m.Links.Reviews,Self=m.Links.Self,Similar=m.Links.Similar}:null,
Genres=m.Genres!=null?(HashSet)m.Genres.Select(g=>new-Genre{Name=g}):new-HashSet()
};
foreach(m.AbridgedCast中的var castMember){
var person=newperson{Id=castMember.Id,Name=castMember.Name};
if(castMember.Characters!=null){
foreach(castMember.Characters中的字符串名称){
var character=新角色{Name=Name,Person=Person,Movie=Movie};
电影。角色。添加(角色);
}
}
}
回归电影;
});
返回电影;

到一个
foreach(var rawmoine in rawmoines.Movies){…}
,使用
收益返回

是。这就是你开始的方式

foreach(var rawMovie in rawMovies.Movies)
{
  var m = rawMovie;
    var movie = new Movie {
        Id = m.Id,
        Title = m.Title,
        Year = m.Year,
        MpaaRating = m.MpaaRating,
        Runtime = m.Runtime,
        CriticsConsensus = m.CriticsConsensus,
        Synopsis = m.Synopsis,
        ReleaseDate = m.ReleaseDates != null ? new ReleaseDate { Dvd = m.ReleaseDates.Dvd, Theater = m.ReleaseDates.Theater } : null,
        Rating = m.Ratings != null ? new Rating { AudienceScore = m.Ratings.AudienceScore, CriticsScore = m.Ratings.CriticsScore } : null,
        AlternateId = m.AlternateIds != null ? new AlternateId { Imdb = m.AlternateIds.Imdb } : null,
        Poster = m.Posters != null ? new Poster { Detailed = m.Posters.Detailed, Original = m.Posters.Original, Profile = m.Posters.Profile, Thumbnail = m.Posters.Thumbnail } : null,
        Link = m.Links != null ? new Link { Alternate = m.Links.Alternate, Cast = m.Links.Cast, Clips = m.Links.Clips, Reviews = m.Links.Reviews, Self = m.Links.Self, Similar = m.Links.Similar } : null,
        Genres = m.Genres != null ? (HashSet<Genre>)m.Genres.Select(g => new Genre { Name = g }) : new HashSet<Genre>()
    };

    foreach (var castMember in m.AbridgedCast) {
        var person = new Person { Id = castMember.Id, Name = castMember.Name };
        if (castMember.Characters != null) {
            foreach (string name in castMember.Characters) {
                var character = new Character { Name = name, Person = person, Movie = movie };
                movie.Characters.Add(character);
            }
        }
    }

    yield return movie;
}
foreach(rawmoines.Movies中的var rawmoine)
{
var m=rawMovie;
var movie=新电影{
Id=m.Id,
Title=m.Title,
年=百万年,
mparating=m.mparating,
运行时=m.运行时,
CriticsConsensus=m.CriticsConsensus,
概要,
ReleaseDate=m.ReleaseDates!=null?新的ReleaseDate{Dvd=m.ReleaseDates.Dvd,Theater=m.ReleaseDates.Theater}:null,
评级=m.Ratings!=null?新评级{AudienceScore=m.Ratings.AudienceScore,CriticsScore=m.Ratings.CriticsScore}:null,
AlternateId=m.AlternateId!=null?新的AlternateId{Imdb=m.AlternateId.Imdb}:null,
Poster=m.Posters!=null?新海报{Detailed=m.Posters.Detailed,Original=m.Posters.Original,Profile=m.Posters.Profile,Thumbnail=m.Posters.Thumbnail}:null,
Link=m.Links!=null?新链接{Alternate=m.Links.Alternate,Cast=m.Links.Cast,Clips=m.Links.Clips,Reviews=m.Links.Reviews,Self=m.Links.Self,Similar=m.Links.Similar}:null,
Genres=m.Genres!=null?(HashSet)m.Genres.Select(g=>new-Genre{Name=g}):new-HashSet()
};
foreach(m.AbridgedCast中的var castMember){
var person=newperson{Id=castMember.Id,Name=castMember.Name};
if(castMember.Characters!=null){
foreach(castMember.Characters中的字符串名称){
var character=新角色{Name=Name,Person=Person,Movie=Movie};
电影。角色。添加(角色);
}
}
}
回归电影;
}

确保您的方法返回
IEnumerable
,并且您已全部设置好。

是。这就是你开始的方式

foreach(var rawMovie in rawMovies.Movies)
{
  var m = rawMovie;
    var movie = new Movie {
        Id = m.Id,
        Title = m.Title,
        Year = m.Year,
        MpaaRating = m.MpaaRating,
        Runtime = m.Runtime,
        CriticsConsensus = m.CriticsConsensus,
        Synopsis = m.Synopsis,
        ReleaseDate = m.ReleaseDates != null ? new ReleaseDate { Dvd = m.ReleaseDates.Dvd, Theater = m.ReleaseDates.Theater } : null,
        Rating = m.Ratings != null ? new Rating { AudienceScore = m.Ratings.AudienceScore, CriticsScore = m.Ratings.CriticsScore } : null,
        AlternateId = m.AlternateIds != null ? new AlternateId { Imdb = m.AlternateIds.Imdb } : null,
        Poster = m.Posters != null ? new Poster { Detailed = m.Posters.Detailed, Original = m.Posters.Original, Profile = m.Posters.Profile, Thumbnail = m.Posters.Thumbnail } : null,
        Link = m.Links != null ? new Link { Alternate = m.Links.Alternate, Cast = m.Links.Cast, Clips = m.Links.Clips, Reviews = m.Links.Reviews, Self = m.Links.Self, Similar = m.Links.Similar } : null,
        Genres = m.Genres != null ? (HashSet<Genre>)m.Genres.Select(g => new Genre { Name = g }) : new HashSet<Genre>()
    };

    foreach (var castMember in m.AbridgedCast) {
        var person = new Person { Id = castMember.Id, Name = castMember.Name };
        if (castMember.Characters != null) {
            foreach (string name in castMember.Characters) {
                var character = new Character { Name = name, Person = person, Movie = movie };
                movie.Characters.Add(character);
            }
        }
    }

    yield return movie;
}
foreach(rawmoines.Movies中的var rawmoine)
{
var m=rawMovie;
var movie=新电影{
Id=m.Id,
Title=m.Title,
年=百万年,
mparating=m.mparating,
运行时=m.运行时,
CriticsConsensus=m.CriticsConsensus,
概要,
ReleaseDate=m.ReleaseDates!=null?新的ReleaseDate{Dvd=m.ReleaseDates.Dvd,Theater=m.ReleaseDates.Theater}:null,
评级=m.Ratings!=null?新评级{AudienceScore=m.Ratings.AudienceScore,CriticsScore=m.Ratings.CriticsScore}:null,
AlternateId=m.AlternateId!=null?新的AlternateId{Imdb=m.AlternateId.Imdb}:null,
Poster=m.Posters!=null?新海报{Detailed=m.Posters.Detailed,Original=m.Posters.Original,Profile=m.Posters.Profile,Thumbnail=m.Posters.Thumbnail}:null,
Link=m.Links!=null?新链接{Alternate=m.Links.Alternate,Cast=m.Links.Cast,Clips=m.Links.Clips,Reviews=m.Links.Reviews,Self=m.Links.Self,Similar=m.Links.Similar}:null,
Genres=m.Genres!=null?(HashSet)m.Genres.Select(g=>new-Genre{Name=g}):new-HashSet()
};
foreach(m.AbridgedCast中的var castMember){
var person=newperson{Id=castMember.Id,Name=castMember.Name};
if(castMember.Characters!=null){
foreach(castMember.Characters中的字符串名称){
var character=新角色{Name=Name,Person=Person,Movie=Movie};
电影。角色。添加(角色);
}
}
}
回归电影;
}

确保你的方法返回
IEnumerable
并且你已经准备好了。

天哪,我现在觉得自己很笨。LOL.我在考虑用某种委托做
foreach(){yield return//}
。我真的太复杂了。谢谢你大卫:)天哪,我现在觉得自己很笨。LOL.我在考虑用某种委托做
foreach(){yield return//}
。我真的太复杂了。谢谢你,大卫:)