try this
i try to convert your given logic into Linq conceptually.
and also tell me if i forgot something.
You can also try .ToArray() method instead of .ToList() if required.
var result = cycleSummaries.Select(cs => new IOPCallTypeModel
{
StartDate = cs.FromDate,
EndDate = cs.ToDate,
ServiceSummaries = cs.ServiceSummaries.Select(ss => new VoiceZone.ServiceSummary
{
ServiceTN = ss.ServiceTN,
BalanceSummary = ss.PricePlanSummary
.Where(w => w.PricePlanName == "International OnePrice")
.SelectMany(pps => pps.BalanceSummaries)
.Select(bs => new BalanceSummary
{
CallType = bs.Classification,
Charges = Convert.ToDouble(bs.DollarAmount),
Duration = Convert.ToInt32(bs.ChargeableSeconds),
NumberOfCalls = Convert.ToInt32(bs.CallCount)
}).ToList()
}).ToList()
}).ToList();