Хорошо, вы создаете один объект с BL_Deposit oDeposit = new BL_Deposit();
, затем в вашем цикле вы изменяете свойства этого же объекта.Переместите код с созданием объекта в цикл, тогда, я думаю, вы должны получить то, что хотите.
Конечно, вы можете создавать объекты непосредственно в запросе, избегая анонимных объектов.
[править] Вот как вы можете использовать LINQ для непосредственного создания своего списка:
List<BL_Deposit> deposits =
(from account in doc.Descendants("account")
from deposit in account.Elements("deposits")
where (string)account.Element("acct").Attribute("custid").Value == customerId
select new BL_Deposit()
{
DepositId = (int)deposit.Attribute("depid"),
DepAmt = (double)deposit.Attribute("depamount"),
DepDate = Convert.ToDateTime(deposit.Attribute("depdate").Value)
}).ToList();
Затем вы также можете вычислить сумму, например, sumDep = deposits.Sum(d => d.DepAmt);
.