To.List() Objekt als Parameter übergeben


julia23

Mitglied
Ich versuche gerade ein Maximum aus meinem Code zu gewinnen.
Leider schaffe ich es nicht die Liste die ich aus der Datenbank hole (EndDateCallsReceived)
zu übergeben.

Es wäre super, wenn sich das jemand ansehen könnte.

C#:
public void InsertPilot()
 {

 var pilotgroup = (from l in db.lg7
 join c in db.catalog on l.NUMBER.ToString() equals c.ObjId
 where c.IdObj == "10"
 && (l.ENDDATE > time1 && l.ENDDATE <= time2)
 orderby l.EN_ENDDATE
 select l)
 .GroupBy(l => l.NUMBER)
 .Select(group => new
 {
 pilotId = group.Key,
 NUMBER = group.FirstOrDefault().NUMBER,
 Date = currentDate.ToString("yydMM", System.Globalization.CultureInfo.CreateSpecificCulture("en-US")),
 // ...
 EndDateCallsReceived = group.Where(lg => STATE == 0
 //…
 ).Select(lg => lg.ENDDATE).ToList()

 })

 ;


 foreach (var p in pilotgroup)
 {

 Pilot pilot = new Pilot
 {

 pilot_number = p.EN_PILOTNUMBER.ToString(),
 date = p.Date,
 calls_received = p.CallsReceived,

 //First Error because it don´t except the List 
 maximum_number_of_simultaneous_calls = rc.MaximumNumberOfSimultaneousCalls(p.CallsReceived, p.EndDateCallsReceived, p.StartDateCalls),
 //…
 };
 }


 }
}




public int MaximumNumberOfSimultaneousCalls(int callsRecieved, List<int> endDate, List<int> startDate)
 {

 if(callsRecieved == 0)
 { return 0;}

 else if (callsRecieved == 1)
 { return 1; }

 else
 {
 var maxCallsCount = 0;

 foreach (var second in Enumerable.Range(startDate.FirstOrDefault(),
 endDate.FindLast() - startDate.FirstOrDefault() + 1))
 {
 var callsCount = 0;

 for (var i = 0; i < startDate.Length; ++i)
 {
 if ( startDate[i]<= second && second <= endDate[i])
 {
 ++callsCount;
 }
 }

 if (callsCount > maxCallsCount)
 {
 maxCallsCount = callsCount;
 }
 }

 return maxCallsCount;


 }
 return 0;

 }
 

julia23

Mitglied
Ok mein erster Fehler habe ich nun schonmal rausfinden können.
Ich kann als Parameter einfach List<int?> angeben.

Zu finden in Zeile 37. (FIrst Error)

Jetzt bin ich mir aber nicht sicher, wie ich in Zeile 63 und 64 darauf zugreife.

Ziel des ganzen soll sein, dass ich die sekunden zwischen startDate und EndDate zähle
und dann angebe kann in welcher Sekunde die meisten Anrufe reinkommen. Eigentlich ist
es egal in welcher genau, ich muss nur herausfinden, was die MAximale anzahl an
Anrufen in einer Sekunde war.
 

Neue Beiträge