多维列表C#
我需要创建一个多维防护列表,列出三个值, 十、 Y和Z,我需要一个列表,因为一旦查询了值,数组就必须被删除多维列表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>。这将满足您通过删除外部列表对象中的第一个元素来删除“所有其他三个”的要求 很抱歉,你的问题有点
查询看起来是这样的: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];