zoukankan      html  css  js  c++  java
  • List泛型Add后,所有值都是最后一次Add的结果 解决方法

    public List<VoucherEntryEntity> AnalyseVoucherEntry(DataTable voucherentry)
            {

                VoucherEntryEntity voucherentryentity = new VoucherEntryEntity();
                List<VoucherEntryEntity> listVoucherEntity = new List<VoucherEntryEntity>();
                for (int i = 0; i < voucherentry.Rows.Count;i++ )
                {
                    voucherentryentity.FBrNo = voucherentry.Rows[i]["FBrNo"].ToString();
                    voucherentryentity.FExplanation = voucherentry.Rows[i]["FExplanation"].ToString();
                    voucherentryentity.FAccountID = Convert.ToInt32(voucherentry.Rows[i]["FAccountID"]);
                    voucherentryentity.FDetailID = Convert.ToInt32(voucherentry.Rows[i]["FDetailID"]);
                    voucherentryentity.FCurrencyID = Convert.ToInt32(voucherentry.Rows[i]["FCurrencyID"]);
                    voucherentryentity.FExchangeRate = float.Parse(voucherentry.Rows[i]["FExchangeRate"].ToString());
                    voucherentryentity.FDC = Convert.ToInt32(voucherentry.Rows[i]["FDC"]);
                    voucherentryentity.FAmountFor = Convert.ToDecimal(voucherentry.Rows[i]["FAmountFor"]);
                    voucherentryentity.FAmount = Convert.ToDecimal(voucherentry.Rows[i]["FAmount"]);
                    voucherentryentity.FQuantity = float.Parse(voucherentry.Rows[i]["FQuantity"].ToString());
                    voucherentryentity.FMeasureUnitID = Convert.ToInt32(voucherentry.Rows[i]["FMeasureUnitID"]);
                    voucherentryentity.FUnitPrice = float.Parse(voucherentry.Rows[i]["FUnitPrice"].ToString());
                    voucherentryentity.FInternalInd = voucherentry.Rows[i]["FInternalInd"].ToString();
                    voucherentryentity.FAccountID2 = Convert.ToInt32(voucherentry.Rows[i]["FAccountID2"]);
                    voucherentryentity.FSettleTypeID = Convert.ToInt32(voucherentry.Rows[i]["FSettleTypeID"]);
                    voucherentryentity.FSettleNo = voucherentry.Rows[i]["FSettleNo"].ToString();
                    voucherentryentity.FTransNo = voucherentry.Rows[i]["FTransNo"].ToString();
                    voucherentryentity.FCashFlowItem = Convert.ToInt32(voucherentry.Rows[i]["FCashFlowItem"]);
                    voucherentryentity.FTaskID = Convert.ToInt32(voucherentry.Rows[i]["FTaskID"]);
                    voucherentryentity.FResourceID = Convert.ToInt32(voucherentry.Rows[i]["FResourceID"]);
                    listVoucherEntity.Add(voucherentryentity);
                }
                return listVoucherEntity;
            }

    添加多条数据时,所有的值都是最后一次的结果。

    原来在.net中,list 在ADD时,每次保留一个它的引用,所以要把VoucherEntryEntity voucherentryentity = new VoucherEntryEntity();
    放到for循环中去才可以避免ADD后的值不会重复,也就是每循环一次,VoucherEntryEntity 就要new 一次.

    public List<VoucherEntryEntity> AnalyseVoucherEntry(DataTable voucherentry)
            {

                
                List<VoucherEntryEntity> listVoucherEntity = new List<VoucherEntryEntity>();
                for (int i = 0; i < voucherentry.Rows.Count;i++ )
                {

                    VoucherEntryEntity voucherentryentity = new VoucherEntryEntity();
                    voucherentryentity.FBrNo = voucherentry.Rows[i]["FBrNo"].ToString();
                    voucherentryentity.FExplanation = voucherentry.Rows[i]["FExplanation"].ToString();
                    voucherentryentity.FAccountID = Convert.ToInt32(voucherentry.Rows[i]["FAccountID"]);
                    voucherentryentity.FDetailID = Convert.ToInt32(voucherentry.Rows[i]["FDetailID"]);
                    voucherentryentity.FCurrencyID = Convert.ToInt32(voucherentry.Rows[i]["FCurrencyID"]);
                    voucherentryentity.FExchangeRate = float.Parse(voucherentry.Rows[i]["FExchangeRate"].ToString());
                    voucherentryentity.FDC = Convert.ToInt32(voucherentry.Rows[i]["FDC"]);
                    voucherentryentity.FAmountFor = Convert.ToDecimal(voucherentry.Rows[i]["FAmountFor"]);
                    voucherentryentity.FAmount = Convert.ToDecimal(voucherentry.Rows[i]["FAmount"]);
                    voucherentryentity.FQuantity = float.Parse(voucherentry.Rows[i]["FQuantity"].ToString());
                    voucherentryentity.FMeasureUnitID = Convert.ToInt32(voucherentry.Rows[i]["FMeasureUnitID"]);
                    voucherentryentity.FUnitPrice = float.Parse(voucherentry.Rows[i]["FUnitPrice"].ToString());
                    voucherentryentity.FInternalInd = voucherentry.Rows[i]["FInternalInd"].ToString();
                    voucherentryentity.FAccountID2 = Convert.ToInt32(voucherentry.Rows[i]["FAccountID2"]);
                    voucherentryentity.FSettleTypeID = Convert.ToInt32(voucherentry.Rows[i]["FSettleTypeID"]);
                    voucherentryentity.FSettleNo = voucherentry.Rows[i]["FSettleNo"].ToString();
                    voucherentryentity.FTransNo = voucherentry.Rows[i]["FTransNo"].ToString();
                    voucherentryentity.FCashFlowItem = Convert.ToInt32(voucherentry.Rows[i]["FCashFlowItem"]);
                    voucherentryentity.FTaskID = Convert.ToInt32(voucherentry.Rows[i]["FTaskID"]);
                    voucherentryentity.FResourceID = Convert.ToInt32(voucherentry.Rows[i]["FResourceID"]);
                    listVoucherEntity.Add(voucherentryentity);
                }
                return listVoucherEntity;
            }

  • 相关阅读:
    将vue文件script代码抽取到单独的js文件
    git pull 提示错误:Your local changes to the following files would be overwritten by merge
    vue和uniapp 配置项目基础路径
    XAMPP Access forbidden! Access to the requested directory is only available from the local network.
    postman与newman集成
    postman生成代码段
    Curl命令
    POST方法的Content-type类型
    Selenium Grid 并行的Web测试
    pytorch转ONNX以及TnesorRT的坑
  • 原文地址:https://www.cnblogs.com/glj1203/p/1865871.html
Copyright © 2011-2022 走看看