加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 向List添加新对象不起作用

发布时间:2020-12-16 00:23:29 所属栏目:百科 来源:网络整理
导读:我正在尝试向OldFlatFileList添加一个新的OldFlatFile,但它不能添加新的OldFlatFile.我看不到错误,我不知道下面的代码是否有问题? OldFlatFileList计数与添加之前和之后相同: var selectedPackage = FlatFileHelper.GetSelectedPackage(OldFlatFileList);
我正在尝试向OldFlatFileList添加一个新的OldFlatFile,但它不能添加新的OldFlatFile.我看不到错误,我不知道下面的代码是否有问题?

OldFlatFileList计数与添加之前和之后相同:

var selectedPackage = FlatFileHelper.GetSelectedPackage(OldFlatFileList);
    var primaryFeature = new PrimaryFeatures(){ DataTypeCode = "abc" };

    OldFlatFileList.ToList().Add(
    new OldFlatFile
    {
        new OldFlatFileEntry
        {
            InformationFields = selectedPackage.InformationFields,PrimaryFeatures = primaryFeature,SecondaryFeatures = null
        }
    });
private IEnumerable<OldFlatFile> OldFlatFileList
    {
        get { return Session[SystemConstant.OldFlatFileListKey] as List<OldFlatFile>; }
        set { Session[SystemConstant.OldFlatFileListKey] = value; }
    }
public class OldFlatFile : List<OldFlatFileEntry>
    {}

解决方法

OldFlatFileList.ToList()创建列表的新实例(将具有原始列表中的项目副本).然后,您将新对象添加到该新列表,但不保存对任何变量中的新列表的引用.所以添加项目的新列表将由垃圾收集器收集.原始列表将保持不变(因为您没有添加项目).

因此,您无法将项目添加到IEnumerable< T>的变量中. type(它只支持枚举),我建议你将OldFlatFileList属性类型改为List< OldFlatFile>,或者IList< OldFlatFile>或ICollection< OldFlatFile>.然后简单地致电:

OldFlatFileList.Add(new OldFlatFile { ... });

这将修改您的原始列表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读