我有x個客戶。對於每個客戶,我進行數據庫調用,返回List<DateTime>
。
每個列表可以爲空或包含x個日期。
通過多個列表循環並保存到新列表
我想要實現的是,對於每個客戶,我從列表中選取第一個日期(最早的),計算該日期在列表中的次數,然後將該數字保存到新的List<int> RegList
。
每個客戶的第一個日期成爲RegList
中的第一項,第二日期的第二項,等等
列表顧客一個
{2016年2月19日00:00:00,2016 -02-19 00:00: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}
在第一個客戶my RegList
看起來正確之後:{2}。 第二位顧客my RegList
看起來像這樣:{5,3,4,3,3,2},這是錯誤的。我應該怎麼做?
編輯:日期並不重要。即使日期不同,任何客戶的第一個日期都應添加到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」在哪裏?我只看到「2016-04-11 00:00:00」的三個實例。 – arbitrarystringofletters
arbitrarystringofletters - 我做了更新。日期無關緊要,即使日期不同,客戶的第一次約會也應始終添加到RegList [0]。 2 + 3來自顧客1和顧客2 3。 – Andy