如果你只需要映射從CertMail
到CertMailReceipt
和兩種類型很相似,你可以使用一個AUTOMAGIC幫手像AutoMapper來幫助你的映射。
基本上,AutoMapper將處理很多無聊和容易出錯的左 - 右代碼 - 將目標上的一個屬性賦值給源對象上的一個屬性。
在你的情況下,如果兩種類型有些相似,你可以這樣做:
using AutoMapper;
Mapper.CreateMap<CertMail, CertMailReceipt>();
sourceList.ForEach(certMail =>
{
lsReceiptNumbers.Add(Mapper.Map<CertMail, CertMailReceipt>(certMail))
});
或者如果你喜歡:
using AutoMapper;
Mapper.CreateMap<CertMail, CertMailReceipt>();
foreach(certMail cm in sourceList)
{
lsReceiptNumbers.Add(Mapper.Map<CertMail, CertMailReceipt>(cm));
}
這基本上是NPayette提到了同樣的想法,只需使用半自動映射器,而不必自己編寫整個映射過程。
而且隨着一點點運氣(並根據您的類型的數據結構),你甚至可能得到Automapper的利益能夠甚至整個列表從一種類型到另一個地圖:
lsReceiptNumbers = Mapper.Map<List<CertMail>,
List<CertMailReceipt>>(sourceList);
Automapper將遍歷項目本身的列表,並將其映射應用於每個項目,並將其添加到結果輸出列表中。
你能告訴我們什麼'CertMail'和'CertMailReceipt'看起來像什麼嗎?幾乎一樣嗎? – 2010-03-08 17:09:46
CertMail和CertMailReceipt不相似,CertMailReceipt是我的數據合同類,CertMail是CertMail是數據訪問層中返回列表的類 –
Pinu
2010-03-08 17:52:56