XML 파일을 반복하여 입금 목록을 캡처하고이를 비즈니스 로직 계층에 전달합니다. 반환 문에 익명 형식 컬렉션에 to.list
에 대한 정의가 없다는 오류가 표시됩니다. 내가 반환 문 to.list
을 남겨두면 나는 select
에 캐스팅이 누락되었다는 오류를받습니다. 익명의 컬렉션을 목록으로 변환 할 수 없기 때문입니다. 이 문제를 어떻게 해결할 수 있습니까?WinForms의 컬렉션 캐스팅
데이터 액세스 레이어
public class DepositList
{
public string Depid { get; set; }
public string Amount { get; set; }
public string DepDate { get; set; }
}
public class DLDeposits
{
public List<DepositList> getDeposits(string customerid)
{
double sumDep = 0;
//Returns list of deposits for selected customer
var doc = XDocument.Load("Portfolio.xml");
List<DepositList> result = from account in doc.Descendants("account")
from deposit in account.Elements("deposits")
where (string)account.Element("acct").Attribute("custid").Value == customerid
select new
{
Depid = (string)deposit.Attribute("depid").Value,
Amount = (string)deposit.Attribute("depamount").Value,
DepDate = (string)deposit.Attribute("depdate").Value
}.ToList();
return result;
}
}
비즈니스 로직 계층
public double getDeposits(string customerId)
{
double sumDep = 0;
//Returns list of deposits for selected customer
var doc = XDocument.Load("Portfolio.xml");
CustCount(doc);
DLDeposits obj = new DLDeposits();
var depositList = obj.getDeposits(customerId);
for (int i = 0; i < NumCusts; i++)
{
BL_Deposit oDeposit = new BL_Deposit();
oDeposit.DepAmt = Convert.ToDouble(depositList[i].Amount);
oDeposit.DepDate = Convert.ToDateTime(depositList[i].DepDate);
oDeposit.DepositId = Convert.ToInt32(depositList[i].Depid);
addDeposits(oDeposit);
sumDep += oDeposit.DepAmt;
}
return sumDep;
}