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

本文关键字:最佳 方法 列表 对象 枚举 浅拷贝 包含 | 更新日期: 2023-09-27 18:33:05

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 });

好的,假设我有上述设置。我想创建一个设置配置的副本。由于枚举是一种值类型,因此我不需要处理此值类型的引用,而只需要处理MySettings的引用。

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

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

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

将每个项目投影到新MySettings中怎么样?

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