struct:
public struct BuyTipItem
{
public string dialogId;
public bool isBuy;
}
class Program
{
static void Main(string[] args)
{
List<BuyTipItem> buyTipItems = new List<BuyTipItem>();
buyTipItems.Add(new BuyTipItem() { dialogId="66",isBuy=false});
var value= buyTipItems.Find(item => item.dialogId == "66");
value.isBuy = true;
foreach (var item in buyTipItems)
{
Console.WriteLine(item.dialogId+","+item.isBuy);
}
}
}
class:
public class BuyTipItem
{
public string dialogId;
public bool isBuy;
}
class Program
{
static void Main(string[] args)
{
List<BuyTipItem> buyTipItems = new List<BuyTipItem>();
buyTipItems.Add(new BuyTipItem() { dialogId="66",isBuy=false});
var value= buyTipItems.Find(item => item.dialogId == "66");
value.isBuy = true;
foreach (var item in buyTipItems)
{
Console.WriteLine(item.dialogId+","+item.isBuy);
}
}
}
以上运行各运行一遍。
可以发现容器中再次拿过来的都是进行了深拷贝,并不是内存的引用。