[英]How can I fill the object in C#?
我有26個數據的對象。 另一方面,我有視圖模型對象。 我想將這26個數據傳遞到視圖模型中。 讓我用代碼解釋。
cheq = Service.Cheque.Instance.GetRejectedChequeInq(1, nationalcode, "", "", "").ReturnValue.ChequeItem.ToList();
cust = Service.Cheque.Instance.GetRejectedChequeInq(1, nationalcode, "", "", "").ReturnValue;
var cheqdto = new PageData<ChequeDTO>();
var ss = new PageData<CustomerDTO>();
cheqdto.Data = cheq;
cheqdto.Total = cheq.Count;
IdentifingInfo id = new IdentifingInfo();
id.Name = cust.Name;
id.RegisterPlace = cust.CDSbt;
id.NationalCode = cust.IDNO;
id.RegisterDate = cust.DTSbt;
id.RegisterNumber = cust.NOSbt;
id.RegisterPlace = cust.CDSbt;
ChequeItemVM cheqItem = new ChequeItemVM();
foreach (var i in cheq)
{
cheqItem.AccountNumber = i.ACCNTNO;
cheqItem.Ammount = i.AMCHQ;
cheqItem.BankId = i.CDBNK;
cheqItem.Branch = i.CDSHB;
cheqItem.BranchName = i.DESC;
cheqItem.ChequeDate = i.DTCHQ;
cheqItem.ChequeID = i.IDCHQ;
cheqItem.ChequeNumber = i.NOCHQ;
cheqItem.CurrencyAmount = i.CONVRATE;
cheqItem.CurrencyCode = i.CDARZ;
cheqItem.RejectDate = i.BCKDTCHQ;
}
這里的cheq
對象是我的主要對象。 我想將cheq
值傳遞給cheqitem
所有26個值。 我知道這是一個不好的問題,但請幫助我。
也許是時候發現一些Linq了:
var cheques = cheq.Select(i => new ChequeItemVM()
{
AccountNumber = i.ACCNTNO,
Ammount = i.AMCHQ,
BankId = i.CDBNK,
Branch = i.CDSHB,
BranchName = i.DESC,
ChequeDate = i.DTCHQ,
ChequeID = i.IDCHQ,
ChequeNumber = i.NOCHQ,
CurrencyAmount = i.CONVRATE,
CurrencyCode = i.CDARZ,
RejectDate = i.BCKDTCHQ
}).ToList();
編輯:您可能需要using System.Linq;
添加using System.Linq;
在源文件的最頂部
您需要創建List<T>
並在循環中一個接一個地添加項目:
List<ChequeItemVM> cheques = new List<ChequeItemVM>(); // create a list
foreach (var i in cheq)
{
ChequeItemVM cheqItem = new ChequeItemVM(); // create item
cheqItem.AccountNumber = i.ACCNTNO;
cheqItem.Ammount = i.AMCHQ;
cheqItem.BankId = i.CDBNK;
cheqItem.Branch = i.CDSHB;
cheqItem.BranchName = i.DESC;
cheqItem.ChequeDate = i.DTCHQ;
cheqItem.ChequeID = i.IDCHQ;
cheqItem.ChequeNumber = i.NOCHQ;
cheqItem.CurrencyAmount = i.CONVRATE;
cheqItem.CurrencyCode = i.CDARZ;
cheqItem.RejectDate = i.BCKDTCHQ;
cheques.Add(cheqItem); // adding one by one item in List
}
我建議,您應該重載ChequeItemVM構造函數以獲取輸入Check對象並初始化值。 因此,如果您需要在項目的其他地方使用相同的代碼,則可以節省代碼重復。
您的ChequeItemVM類應如下所示
class ChequeItemVM
{
//Properties
public ChequeItemVM()
{
}
public ChequeItemVM( Cheque chq)
{
AccountNumber = chq.ACCNTNO;
Ammount = chq.AMCHQ;
BankId = chq.CDBNK;
Branch = chq.CDSHB;
BranchName = chq.DESC;
ChequeDate = chq.DTCHQ;
ChequeID = chq.IDCHQ;
ChequeNumber = chq.NOCHQ;
CurrencyAmount = chq.CONVRATE;
CurrencyCode = chq.CDARZ;
RejectDate = chq.BCKDTCHQ;
}
}
您現有的代碼應如下所示
var lstCheques = new List<ChequeItemVM>();
foreach (var i in cheq)
{
lstCheques.Add(new ChequeItemVM(i));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.