我需要創建一個多維防護列表三個值,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