[WebMethod(Description = "Return all activities by Task.")]
public IList<ActivityDto> GetActivitiesByTaskID(int taskID)
{
IList<Activity> activities = ActivityDao.GetByTaskID(taskID);
IList<ActivityDto> activityDtos = new List<ActivityDto>(activities.Count);
foreach(Activity activity in activities)
activityDtos.Add(ActivityDto.Create(activity));
return activityDtos;
}
缩短为:
[WebMethod(Description = "Return all activities by Task.")]
public IList<ActivityDto> GetActivitiesByTaskID(int taskID)
{
return ActivityDao.GetByTaskID(taskID).Select(ActivityDto.Create).ToList();
}
我觉得因为我不得不问 - 它可能做得有点太多了。不过,唯一让我担心的部分是将函数传递给 Select 语句。不过,我认为我只是没有足够地使用这种语法,而且它实际上是一种非常简洁的表达方式。
我想知道其他程序员看到这种方法的缩短版本是否会感到不安。
编辑:另外,对效率比较的评论将不胜感激。我知道 LINQ 因在大型数据集上运行速度较慢而臭名昭著。我想说在某些情况下可以枚举 10,000-20,000 条记录。