浅拷贝包含枚举的对象列表的最佳方法

时间:2016-02-03 11:25:26

标签: c# linq clone value-type reference-type

public enum Settings
{
   MySettingOne,
   MySettingTwo
}

public class MySettings
{
    public Settings Setting { get; set; }
}

public List<MySettings> SettingsConfig = new List<MySettings>();
SettingsConfig.Add(new MySettings() { Setting = Settings.MySettingOne });
SettingsConfig.Add(new MySettings() { Setting = Settings.MySettingTwo });

好吧,我说我有上面的设置。 我想创建一个SettingsConfig的副本。由于枚举是一个值类型,我不需要处理这个但只有MySettings的引用。

为了论证,我无权访问在MySettings上实现MemberwiseClone的代码。

我认为这可以用linq完成,但我没有看到它。

1 个答案:

答案 0 :(得分:2)

如何将每个项目投放到新的MySettings

var copy = SettingsConfig
           .Select(x => new MySettings() 
                        { 
                           Setting = x.Setting
                        }).ToList();