我需要创建一个多维防护列表三个值,X,Y和Z,我需要一个列表,因为一旦查询值,数组必须被删除。多维列表C#
该查询看起来像这样:List [0] [0] = X,List [0] [a] = Y和List [0] [2] = X,这样我就只能删除索引0,他已经除去了其他三个。
我需要创建一个多维防护列表三个值,X,Y和Z,我需要一个列表,因为一旦查询值,数组必须被删除。多维列表C#
该查询看起来像这样:List [0] [0] = X,List [0] [a] = Y和List [0] [2] = X,这样我就只能删除索引0,他已经除去了其他三个。
如果你需要创建一个多维列表中,你总是可以创建一个列表的列表,像这样:
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
要知道,虽然试图更换不通过转让方式存在的价值会抛出一个异常:
multiDimensionalList[2][5] = "R"; // Throws an ArgumentOutOfRangeException
你的问题很难理解,但是你可能用数组的数组来完成你正在寻找的东西吗?无论如何,这就是多维数组如何在某些语言中实现的。
就你而言,你可能正在使用列表的列表:列表>。这将满足您的要求,通过删除外部列表中的第一个元素来删除“所有其他三个”对象。
我很抱歉,但您的问题有点难以理解,但我会采取一定的措施。请不要将数组和列表换成单词,因为它们在C#中有所不同但相关的想法。我相信你的意思是使用[]方括号的Array。尽管您可能想要考虑使用列表,因为它们有一个很好的方式可以使用该元素从列表中删除某些元素。 MSDN有一些很好的信息来告诉你如何继续。 List(T).Remove method
该列表将自我重构以根据需要移除或添加元素。
我不知道我和你同时使用字符串和整数作为你的第二个索引,并引用X
两次,但不是Z
按照你的逻辑。假设这些是错别字,我会猜测你想要什么。
你有没有考虑一个自定义类型与X
,Y
,和Z
属性,索引器来给你描述的行为:
你也没有提到你的价值观是什么类型的,所以我用object
,但随时替代自己的类型(或通用型)
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];
当然,这个实现取决于您的第二维总是由3个元素组成。如果它不一致,那么其他答案之一就会满足您的需求。
以防万一它是一个数组的数组,如列表但更容易删除喜欢使用索引列表 – 2012-04-17 02:15:05
这是一个问题或评论?无论哪种方式,我不明白... – 2012-04-17 02:16:15