我有一個應用程序有幾個列表來跟蹤運行應用程序期間的一些值。特別是它有List1,List2和MainList。更新列表的列表
List1和List2是String類型,MainList是其他兩個列表的列表。
在我的應用程序中,我希望在應用程序運行時更新和更改列表的值,但我無法弄清楚如何執行此操作。
它是一個圖像處理應用程序,處理來自文件的照片。應用程序需要處理文件中所有照片的列表值。因此,它將有一個循環遍歷所有照片,並在每次迭代時更新列表。
我的算法應該看起來如下: *如果它的第一個圖像,將字符串添加到List1。然後將List1添加到MainList *對於每個連續的圖像,將該圖像的字符串添加到List2。然後將List2添加到MainList。將List1設置爲添加到MainList的最後一個列表。清除列表2
問題是,當我清除List2數據時,它也會清除已設置的List1的數據。我怎樣才能阻止這種情況發生。我已經附上我的代碼,希望更有意義。在我的代碼中,我省略了檢查,看看它是否是第一張圖像,因爲我只是測試算法。
List<List<String>> MainStringList = new List<List<String>>();
List<String> StringList1 = new List<String>();
List<String> StringList2 = new List<String>();
StringList1.Add("My Car");
StringList1.Add("My Engine");
StringList1.Add("My Wheel");
MainStringList.Add(StringList1);
StringList2.Add("My Flower");
StringList2.Add("My Honey");
StringList2.Add("My Love Heart");
DoStuff(StringList1, StringList2);
private void DoStuff(List<String> StringList1, List<String> StringList2)
{
// Perform some calculations
// Then add to list
MainStringList.Add(StringList2);
int mainStringListCount = MainStringList.Count;
StringList1 = MainStringList[mainStringListCount - 1];
String test1 = StringList1[2];
StringList2.Clear();
String test2 = StringList1[2]; // Problem is here - clears StringList2 as well as StringList1
}
@Hans Moolman StringList2.Clear();將不會清除StringList1,除非你說StringList1 = StringList2 ...但我沒有看到你的代碼... – NiK 2012-03-27 22:35:05
糟糕的傢伙,本來打算說我在C#做它。 _italic StringList2。明確();不會清除StringList1,除非你說StringList1 = StringList2_因爲我添加StringList2到我的MainList,然後用它來設置我的StringList1,它實際上清除它。我已經遍歷了代碼,並且在StringList2.Clear()之後,我的StringList1的值全爲空。除非我在路上做別的事情,但我不能看到任何暗示我的東西? – heyred 2012-03-28 08:34:37