Lista w liscie i brak elementów

0

Hejka.
Teraz uskuteczniam sobie pewną grę w Unity jednak mam problem. Mam Listę zawierająca w sobie listę i listę tymczasowa tak aby dodawać do niej pewne liczby.
Działą to tak.
Do listy tymczasowej dodaje liczby (1,2,3,4) potem tę listę dodaje z jej wartościami do do listy list. Czyszczę listę tymczasową i wrzucam do niej inne liczby. Znowu dodaje na przechowanie do listy list i czyszczę (te tymczasową). Efekt jest taki że lista list jest wielkości 2 czyli tak jak by powinno ale listy wewnątrz tej listy są puste.

List<List<int>> _listOfPosibleActions = new List<List<int>> ();
		List<int> _tmpList = new List<int> ();
		//List < int > _listOfPosibleActions = new List<int>();
		//int mytmpvariable;
		//Debug.Log ("Domniemane pozycje:");
		if(_startY == (int)this.transform.position.z){
			_tmpList.Add ((int)this.transform.position.x);
			_tmpList.Add ((int)this.transform.position.z+1);
			_tmpList.Add ((int)this.transform.position.x);
			_tmpList.Add ((int)this.transform.position.z+2);

			Debug.Log (_tmpList.Count);
			_listOfPosibleActions.Add(_tmpList);
			_tmpList.Clear ();
			foreach (List<int> subList in _listOfPosibleActions)
			{
				foreach (int item in subList)
				{
					Debug.Log ("Lista: " + item);
				}
			}
			Debug.Log (_tmpList.Count);



			_tmpList.Add ((int)this.transform.position.x-1);
			_tmpList.Add ((int)this.transform.position.z+1);
			_tmpList.Add ((int)this.transform.position.x+1);
			_tmpList.Add ((int)this.transform.position.z+1);
			_listOfPosibleActions.Add(_tmpList);

			_tmpList.Clear ();


			//mytmpvariable = (int)this.transform.position.x;
			//_listOfPosibleActions.Add(mytmpvariable);
			//Debug.Log ("x:" + mytmpvariable);
			//mytmpvariable = (int)this.transform.position.z+1;
			//_listOfPosibleActions.Add(new List<int> { (int)this.transform.position.z + 1 });
			//_listOfPosibleActions.Add(mytmpvariable);
			//Debug.Log ("z:" + mytmpvariable);
			//_listOfPosibleActions.Add((int)this.transform.position.x);
			//_listOfPosibleActions.Add(new List<int> { (int)this.transform.position.x });
			//_listOfPosibleActions.Add(new List<int> { (int)this.transform.position.z + 2 });
			//_listOfPosibleActions.Add((int)this.transform.position.z+2);


			//_listOfPosibleActions.Add((int)this.transform.position.x);
			//_listOfPosibleActions.Add((int)this.transform.position.y);
		}
1

jak zrobisz _listOfPosibleActions.Add(_tmpList); to do _listOfPosibleActions leci _tmpList a nie jego kopia i jak potem zrobisz _tmpList.Clear () to wyczyścisz zarówno to co masz w _tmpList jak i w _listOfPosibleActions[x]

0

To już ustaliłem. Co z tym zrobić?

0

yyyy no tworzyć za każdym razem listę a nie działać na tej samej?

0

Ale tych list może być nie wiadomo ile więc muszę mieć tymczasowa i ja kopiować do listy list. W tym sęk.

1
List<int> lista;
List<List<int>> listaDuza = new List<List<int>>();
Random rnd = new Random();
for (int x = 0; x < 1000; x++)
{
  lista = new List<int>();
  int koniec = rnd.Next(10, 100);
  for (int i = 0; i < koniec; i++)
    lista.Add(rnd.Next(-100, 101));
  listaDuza.Add(lista);
}

mniej więcej tak to musi wyglądać z tworzeniem listy tymczasowej i dodawaniem jej do "głównej"

0

Dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1