2016-08-05 64 views
3

我想在對象列表中添加行號。
這裏的他們我現在就做,但必須有更好的辦法
我可以在使用automapper進行映射時在對象列表中添加行號嗎?

個人資料映射

public class VendorEnquiryDM_TO_VM : Profile 
{ 
    public VendorEnquiryDM_TO_VM() 
    { 
     CreateMap<VENDORENQUIRY, VendorEnquiryVM>(); 
    } 
} 
public class VendorEnquiryVM_TO_DM : Profile 
{ 
    public VendorEnquiryVM_TO_DM() 
    { 
     CreateMap<VENDOR_ENQUIRY, VendorEnquiryVM>().ReverseMap(); 
    } 
} 

註冊個人

cfg.AddProfile<VendorEnquiryDM_TO_VM>(); 
cfg.AddProfile<VendorEnquiryVM_TO_DM>(); 

氏我是如何添加sno的。

alldata = Mapper.Map<IEnumerable<Vendor_EnquiryVM>>(objDAO.getVendorEnquiry()); 
var _roles = alldata.Select((t, index) => new Vendor_EnquiryVM 
{ 
    sno = index + 1, 
    CONTACT_NO=t.CONTACT_NO, 
    DATE=t.DATE, 
    EMAIL=t.EMAIL, 
    id=t.id, 
    FIRST_NAME=t.FIRST_NAME, 
    wer=t.wer, 
    asdf=t.asdf 
}); 

由於只有一個序列號。我需要分配所有屬性,這對於大型模型來說有點令人疲憊,請向我建議更好的方法。

回答

2

您可以定義靜態標識,當你創建類,由一個

這裏加一類的代碼看起來應該像

public class Test 
{ 
    private static int mId = 0; 

    public Test() 
    { 
     mId = mId +1; 
    } 

    public int Id 
    { 
     get{ return mId;} 
    } 
} 

Here a demo

才能使用與List這樣的集合有相同的想法,我應用了一些修改,在這裏你可以做什麼

public class Test 
{ 
    private static int mIndex = 0; // this parameter will be incremented for each new Test 
    private int mId =0; // this parameter will hold the last incremented value 

    public Test() 
    { 
     mId = ++mIndex; // mIndex++ if you want to start with 0 
    } 

    public int Id 
    { 
     get{ return mId;} 
    } 
} 

Demo with lists

希望這將幫助你

+0

將它測試類對象的集合返回的ItemIndex + 1? –

+0

@BrBhardwaj是的,請查看演示 – Monah

+0

您的問題在這個解決方案中究竟在哪裏? – Monah

相關問題