[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 ステートメントに渡すことです。しかし、私はその構文を十分に使用していないと思います。実際には、多くのことを簡潔に表現するための非常に気の利いた方法です。
このメソッドの短縮バージョンを見て、仲間のプログラマーが動揺するかどうか知りたいです。
EDIT:また、効率の比較に関するコメントをいただければ幸いです。LINQ は大規模なデータ セットの処理が遅いことで有名です。場合によっては、10,000 ~ 20,000 のレコードを列挙できると思います。