私はx人の顧客を持っています。顧客ごとに、List<DateTime>
を返すデータベース呼び出しを行います。
各リストは空でも、x個の日付を含むこともできます。
複数のリストをループして新しいリストに保存
私が達成したいのは、顧客ごとに、リストの最初の日付(最も古いもの)を取得し、その日付がリストに含まれている回数を数えてから、その数値を新しいList<int> RegList
に保存することです。
各顧客の最初の日はRegList
の最初のアイテムとなり、第二日2番目の項目、等
リスト顧客1
{2016年2月19日00:00:00 2016 -02-19夜12時○○分00秒}
RegList
が今すべきである:{2}
リスト顧客2
{2016年4月22日00:00:00、2016-04-22 00:00:00、2016-04-22 00:00:00、2016-04-25 00:00:00、2016-04-26 00:00:00、 2016-04-26 00:00:00、2016-05-02 00:00:00、2016-05-10 00:00:00}
RegList
は{2 + 3,1,2 、{1,1} = {5,1,2,1,1}
最初の顧客の後で、私のRegList
が正しく見える:{2}。 2番目の顧客の後に私のRegList
は{5,3,4,3,3,2}のように見えますが間違っています。私はこれをどのようにするべきですか?
EDIT:日付は関係ありません。日付が異なる場合でも、顧客の最初の日付はReglist
の最初の項目に追加する必要があります。
private void CalculateRegs(List<DateTime> eventList)
{
int num = 0;
int i = 0;
var distinctList = eventList.Distinct().ToList();
foreach (var date in distinctList)
{
num = eventList.Where(x => x.Equals(date)).Count();
if (RegsList.Count() <= i)
{
RegsList.Add(num);
}
else
{
var tempNum = num + RegsList.ElementAt(i);
RegsList.Insert(i, tempNum);
}
i++;
}
}
は、単にでグループを使用する方がはるかに簡単ではないでしょう? –
"2 + 3"は "List customer two"のどこから来ていますか?私は "2016-04-11 00:00:00"の3つのインスタンスしか見ることができません。 – arbitrarystringofletters
恣意的な文字コード - 私は更新を行った。日付は問題ではありません。顧客の最初の日付は、日付が異なっていても常にRegList [0]に追加する必要があります。 2 + 3は顧客1の場合2、顧客2の場合3である。 – Andy