Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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#_C#_Arrays_List_Multidimensional Array - Fatal编程技术网

多维列表C#

多维列表C#,c#,arrays,list,multidimensional-array,C#,Arrays,List,Multidimensional Array,我需要创建一个多维防护列表,列出三个值​​, 十、 Y和Z,我需要一个列表,因为一旦查询了值,数组就必须被删除 查询看起来是这样的:List[0][0]=X,List[0][a]=Y和List[0][2]=X,这样我只能删除索引0,而他已经删除了所有其他三个。你的问题很难理解,但也许你正在寻找的可以通过数组来完成?这就是多维数组在某些语言中的实现方式 在您的情况下,您可能正在使用列表的列表:List>。这将满足您通过删除外部列表对象中的第一个元素来删除“所有其他三个”的要求 很抱歉,你的问题有点

我需要创建一个多维防护列表,列出三个值​​, 十、 Y和Z,我需要一个列表,因为一旦查询了值,数组就必须被删除


查询看起来是这样的:List[0][0]=X,List[0][a]=Y和List[0][2]=X,这样我只能删除索引0,而他已经删除了所有其他三个。

你的问题很难理解,但也许你正在寻找的可以通过数组来完成?这就是多维数组在某些语言中的实现方式


在您的情况下,您可能正在使用列表的列表:List>。这将满足您通过删除外部列表对象中的第一个元素来删除“所有其他三个”的要求

很抱歉,你的问题有点难理解,但我想尝试一下。请不要交换单词数组和列表,因为它们在C#中是不同但相关的概念。我相信你指的是使用[]括号的数组。尽管您可能想考虑使用列表,因为它们有一种使用元素从列表中删除某些元素的好方法。MSDN提供了一些关于如何进行的好信息。


列表将自行重新构造,以便根据需要删除或添加元素。

如果需要创建多维列表,您始终可以创建如下列表:

var multiDimensionalList = new List<List<string>>{
    new List<string>{"A","B","C"},
    new List<string>{"D","E","F"},
    new List<string>{"G","H","I"},
};
Console.WriteLine(multiDimensionalList[2][1]); // Prints H

multiDimensionalList[2].RemoveAt(1);
Console.WriteLine(multiDimensionalList[2][1]); // Prints I

multiDimensionalList[2][1] = "Q";
Console.WriteLine(multiDimensionalList[2][1]); // Prints Q

我不确定我是否遵循了您的逻辑,因为您正在使用字符串和整数作为第二个索引器,并且引用了
X
两次,但没有引用
Z
。假设这些都是打字错误,我想猜一下你想要什么

您是否考虑过具有
X
Y
Z
属性的自定义类型,以及为您提供所述行为的索引器:

您也没有提到您的值是什么类型,因此我使用的是
对象
,但可以随意替换您自己的类型(或泛型类型)


然后您可以这样使用它:

List<MyType> list = new List<MyType>();
list = PopulateList();  // fill list with values


var x = list[0][0];
var y = list[0][1];
var z = list[0][2];
List List=新列表();
list=PopulateList();//用值填充列表
var x=列表[0][0];
变量y=列表[0][1];
var z=列表[0][2];

当然,这个实现取决于你的第二维度总是由3个元素组成。如果不一致,那么其他答案中有一个可以满足您的需要。

以防万一,它是一个数组,如列表,但更容易删除。您更喜欢使用索引列表
public class MyType
{
    private object[] backingArray = new object[3];
    public object this[int index]
    {
        get { return backingArray[index]; }
        set { backingArray[index] = value; }
    }

    public object X 
    {
        get { return backingArray[0]; }
        set { backingArray[0] = value; }
    }
    public object Y
    {
        get { return backingArray[1]; }
        set { backingArray[1] = value; }
    }
    public object Z 
    {
        get { return backingArray[2]; }
        set { backingArray[2] = value; }
    }
}
List<MyType> list = new List<MyType>();
list = PopulateList();  // fill list with values


var x = list[0][0];
var y = list[0][1];
var z = list[0][2];