2014-11-11 3 views
0

개체가 26 개있는 데이터가 있습니다. 다른면에는 뷰 모델 객체가 있습니다. 이 26 개의 데이터를 뷰 모델에 전달하려고합니다. 코드로 설명하겠습니다.C#에서 개체를 채우려면 어떻게해야합니까?

  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 개의 값으로 전달하고 싶습니다. 나쁜 질문이지만 제발 도와주세요.

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(); 

편집 :

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 
      } 

답변

1

당신은 List<T>을 만들고 루프에 의해 거기에 하나를 항목을 추가 할 필요가 당신을 소스 파일 맨 위에 using System.Linq;을 추가해야 할 수도 있습니다.

+0

thnx 많이 사람이 저장 내 직업과 같아야한다) – user3532929

3

어쩌면 그것은 Linq에 비트를 발견 할 수있는 권리 시간이 :

+0

당신은'바꾸기 필요; 이 속성을 만들기 위해 각각의 속성을'',' '와 함께 사용하십시오. – Enigmativity

+0

@Enigmativity : 빌어 먹을 그건 바보 같았 어. 고마워, 이제 고쳐 졌어. – Askolein

0

ChequeItemVM 생성자를 오버로드하여 입력 개체를 가져 와서 val을 초기화해야합니다. ues. 따라서 프로젝트의 다른 곳에서 동일한 코드를 사용해야하는 경우에 대비하여 코드 복제본을 저장할 수 있습니다.

귀하의 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)); 
     } 
관련 문제