gpt4 book ai didi

c# - 复制列表值

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:41 25 4
gpt4 key购买 nike

当我调用此方法时,总是更改原始列表“printRowList”中的值,我不想更改原始值。我只需要更改临时列表的值,即“tempRowModellist”。我能做什么?

private List<PrintRowModel> SetTemplateSettingsData(
List<PrintRowModel> printRowList,
object value)
{
List<PrintRowModel> tempRowModellist = new List<PrintRowModel>();
tempRowModellist.AddRange(printRowList);

foreach (PrintRowModel printRow in tempRowModellist )
{
foreach (PrintColumnModel printColumn in printRow)
{
printColumn.Value =
GetObjectValues(printColumn.Value, value).ToString();
}
}

return newList;
}

最佳答案

因为你还在引用原来的列表。如果您不想修改它,则需要克隆它。改变这个

tempRowModellist.AddRange(printRowList);`

作为

tempRowModellist = printRowList.Clone().ToList();

添加这个extension method

static class Extensions
{
public static List<T> Clone<T>(this List<T> listToClone) where T: ICloneable
{
return listToClone.Select(item => (T)item.Clone()).ToList();
}
}

注意:确保你的类实现了 I Cloneable interface .

关于c# - 复制列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20877596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com