-1
彼らは離れて二であるか、他の時間間隔を持っている場合、アルゴリズムは、日付のブロックをDateTimeのリストに欠けている日付を見つけ、グループ化に基づいています検索不連続、LINQ
DateTime startDate = DateTime.Now;
Random rnd = new Random();
List<DateTime> datesList = new List<DateTime>();
List<List<DateTime>> segregatedList = new List<List<DateTime>>();
var oneYear = 60*60*24*365;
///////////////////// INPUT GENERATE /////////////////////
for (var i = 0; i < oneYear; ++i)
{
if (rnd.Next(1, 5) == 4) continue;
datesList.Add(startDate.AddSeconds(i));
}
/////////////////////// ALGORITHM ///////////////////////
segregatedList.Add(new List<DateTime>());
var difference = datesList[1] - datesList[0];
var j = 0;
var lastIndex = datesList.Count - 1;
for (var i = 0; i < datesList.Count; ++i)
{
segregatedList[j].Add(datesList[i]);
if (i == lastIndex) continue;
if ((datesList[i + 1] - datesList[i]) == difference)
{
difference = datesList[i + 1] - datesList[i];
continue;
}
segregatedList.Add(new List<DateTime>());
++j;
}
LINQにこのコードを書く能力があるのだろうかと思います。
あなたは、このアルゴリズムはに何を意味するか、詳細に、説明していただけます行う? – Enigmativity
2番目の値が 'if(rnd.Next(1、5)== 4)continueでスキップされた場合、' var difference = datesList [1] - datesList [0];行はおそらく間違っています。 '行。 – Enigmativity
'difference = datesList [i + 1] - datesList [i];'行は冗長です。 – Enigmativity