gpt4 book ai didi

c# - StringArrays As A List<> Items -> 如何通过更改一个项目(预定义字符串数组)来防止更改所有项目

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

请看这些代码:

    List<string[]> items_1 = new List<string[]>();
string[] item = new string[] { "item_id_for_sell", "item_title", "item_id_main", "item_amount", "item_del_id" };
items_1.Add(item);
item[0] = "1";
item[1] = "1";
item[2] = "1";
item[3] = "1";
item[4] = "1";
items_1.Add(item);
item[0] = "2";
item[1] = "2";
item[2] = "2";
item[3] = "2";
item[4] = "2";
items_1.Add(item);

我对这个列表很困惑。
为什么该列表中的所有字符串数组最后都具有“2”值?
我怎样才能防止该列表通过更新项目(字符串数组)来更新自身?

提前致谢

最佳答案

您在同一个数组中添加了三次引用,因此更改数组的内容 确实可以让您看到更改,无论您如何更改。重要的是您要了解列表不包含数组本身 - 它包含引用。请参阅我关于 reference types and value types 的文章获取更多信息。

你可能每次都想要一个新数组:

List<string[]> items_1 = new List<string[]>();
string[] item = { "item_id_for_sell", "item_title",
"item_id_main", "item_amount", "item_del_id" };
items_1.Add(item);
item = new string[] { "1", "1", "1", "1", "1" };
items_1.Add(item);
item = new string[] { "2", "2", "2", "2", "2" };
items_1.Add(item);

但是,我建议您重新考虑字符串数组是否真的是这里的最佳格式。为什么不创建一个 Item具有属性的类 Id , Title , Main , AmountDelId (不管什么意思)?然后你可以创建一个List<Item>这将更容易使用。

关于c# - StringArrays As A List<> Items -> 如何通过更改一个项目(预定义字符串数组)来防止更改所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13044459/

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