응용 프로그램을 실행하는 동안 일부 값을 추적하는 여러 목록이있는 응용 프로그램이 있습니다. 특히 List1, List2 및 MainList가 있습니다.목록 목록 업데이트
List1과 List2는 String 유형이고 MainList는 다른 두 목록의 목록입니다.
내 응용 프로그램에서 응용 프로그램이 실행 중일 때 목록의 값을 업데이트하고 변경하려고하지만이 작업을 수행하는 방법을 찾는 데 문제가 있습니다.
파일에서 사진을 처리하는 이미지 조작 응용 프로그램입니다. 응용 프로그램은 파일의 모든 사진에 대한 목록 값을 처리해야합니다. 따라서 모든 사진을 반복하고 각 반복마다 목록을 업데이트하는 루프가 생깁니다.
내 알고리즘은 다음과 같아야합니다. * 첫 번째 이미지 인 경우 List1에 문자열을 추가하십시오. 그런 다음 List1을 MainList에 추가하십시오. * 연속되는 각 이미지에 대해 해당 이미지의 문자열을 List2에 추가하십시오. 그런 다음 List2를 MainList에 추가하십시오. List1을 MainList에 추가 된 마지막 목록으로 설정하십시오. Clear List2
문제는 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 = StringList2라고하지 않는 한 StringList1을 지우지는 않을 것입니다 ... 그러나 당신의 코드에서 그것을 보지 못합니다 ... – NiK
죄송합니다, 얘들 아, C#으로하고있다. _italic StringList2.명확한(); StringList1 = StringList2_ 내 MainList에 StringList2를 추가 한 다음 StringList1을 사용하여 StringList1을 설정하면 실제로 지울 것입니다. 나는 코드를 밟았으며 StringList2.Clear() 후에 StringList1의 값은 모두 null입니다. 임 씨가 그 길을 따라 뭔가 잘못하고있는 것이 아니라면, 내가 그렇다는 것을 알 수있는 어떤 것도 볼 수 없습니까? – heyred