Try this:
var qry = from a in dt.AsEnumerable()
join b in dt.AsEnumerable() on a.Field<int>("EndTime") equals b.Field<int>("StartTime")
select new {
StartTime = a.Field<int>("StartTime"),
EndTime = b.Field<int>("EndTime"),
Duration = a.Field<int>("Duration") + b.Field<int>("Duration"),
Ratio = a.Field<double>("Ratio") + b.Field<double>("Ratio")
};
Returns:
StartTime EndTime Duration Ratio
7 15 8 3.98
11 19 8 3.98
15 23 8 3.98