Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# StringArray作为列表项目->如何通过更改一个项目(预定义的字符串数组)来防止更改所有项目_C#_List_Arrays - Fatal编程技术网

C# StringArray作为列表项目->如何通过更改一个项目(预定义的字符串数组)来防止更改所有项目

C# StringArray作为列表项目->如何通过更改一个项目(预定义的字符串数组)来防止更改所有项目,c#,list,arrays,C#,List,Arrays,请参阅以下代码: 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";

请参阅以下代码:

    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个值? 如何通过更新项字符串数组来防止该列表自我更新


提前感谢

您将三次添加对同一数组的引用,因此更改数组的内容确实可以让您看到所做的更改。重要的是,您要了解列表并不包含数组本身,它包含引用。有关更多信息,请参阅我关于的文章

您可能每次都需要一个新阵列:

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

但是,我敦促您重新考虑字符串数组是否真的是这里最好的格式。为什么不创建一个具有属性Id、Title、Main、Amount和DelId的Item类呢?然后,您可以创建一个更易于使用的列表。

您将三次添加对同一数组的引用,因此更改数组的内容确实可以让您在进行更改时看到更改。重要的是,您要了解列表并不包含数组本身,它包含引用。有关更多信息,请参阅我关于的文章

您可能每次都需要一个新阵列:

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);
但是,我敦促您重新考虑字符串数组是否真的是这里最好的格式。为什么不创建一个具有属性Id、Title、Main、Amount和DelId的Item类呢?然后,您可以创建一个更易于使用的列表