あなたは3つの異なる夏期セッションを正確に説明することができます。私は条件付きアプローチがより理にかなっていると思います。あなたはインクリメント方式のいずれかの種類を実装し、正しくソートされていません。このメソッドにデータを渡す場合は、タグを付けることができActiveSemster
"Summer I"
として日付または学期のIDが一致"Summer II"
は、次のいずれかのLINQクエリで直接条件を含めることができるときまたは任意の用語ヨーヨーのための任意の学期番号の割り当てのための一般化された溶液の日付またはsemster ID
return activeSemester.Select(c => new ActiveSemester
{
id = c.SemesterId,
name = c.Name == "Summer" ? GetSummmer(c.StartDate, c.EndDate) : c.Name
}).ToList();
private string GetSummer(DateTime startDate, DateTime endDate)
{
if (startDate == summer1Start || endDate == summer1End)
return "Summer I";
if (startDate == summer2Start || endDate == summer2End)
return "Summer II";
if (startDate == summer3Start || endDate == summer3End)
return "Summer III";
return "Unknown Summer";
}
private string GetSummer(Integer semesterId)
{
if (semesterId == summer1Id)
return "Summer I";
if (semesterId == summer2Id)
return "Summer II";
if (semesterId == summer3Id)
return "Summer III";
return "Unknown Summer";
}
ありがとう、いいアイデア! – HardCode