2014년 5월 15일 목요일

unity3d script : Object들을 담는 자료 구조(.Net Generic collections)

리스트를 사용하고자 할때 Array, ArrayList, HashTable은 사용하지 말도록…

대신, .Net의 gerneric collections 이나 단순 배열을 사용하도록 합니다.
 - 선언시 자료형을 지정하기 떄문에 명시적 형변환이 필요 없습니다.
 - ArrayList보다 빠릅니다.

리스트를 쓰고자 할 때는 List<Type>,
해쉬 테이블을 사용하고자 할 때는  Dictionary<KeyType,ValueType>


사용하기 전에 아래와 같은 선언이 필요합니다.
using System.Collections.Generic


리스트 사용 방법

//Define a list using C#
List<int> myList = new List<int>();
List<SomeClass> anotherList = new List<SomeClass>();

//Add element to a list
myList.Add(someValue);

//Add multiple elements to a list
myList.AddRange(someListOrArrayOfValues);

//Clear all elements
myList.Clear();

//Insert into a list
myList.Insert(1, someValue);

//Insert multiple elements
myList.InsertRange(1, someListOrArrayOfValues);

//Remove a specific value
myList.Remove(someValue);

//Remove at a specific index
myList.RemoveAt(1);

//Find an index of an element
var index = myList.IndexOf(someValue);

//Find an index of something using a function in Javascript
var index = anotherList.FindIndex(function(entry) entry.someValue == something);

//Turn a list into an array
var myArray = myList.ToArray();

//Find an index of something using a function in C#
var index = anotherList.FindIndex((entry) => entry.someValue == something)

//Get the number of items in the list
var itemCount = myList.Count


딕셔너리 사용 방법

//Define a string to int dictionary in C#
Dictionary<string, int> myDic = new Dictionary<string, int>();

//Define a dictionary of GameObject to a class in C#
Dictionary<GameObject, SomeClass> anotherDic = new Dictionary<GameObject, SomeClass>();

//Add an element to a dictionary
myDic["Something"] = someIntValue;

//Get a value from a dictionary
var someValue = myDic["Something"];

//Get a complex value and change one of its properties
anotherDic[gameObject].someProperty = someValue;

//Check if a value exists
if(myDic.ContainsKey("Something")) { }

//Remove an element from a dictionary
myDic.Remove("Something');

//Run through all of the keys in the dictionary JS
for(var key : String in myDic.Keys) { }

//Run through all of the values in the dictionary in C#
foreach(int value in myDic.Values) { }

//Clear all elements
myDic.Clear();

//Get the number of items in the dictionary
var count = myDic.Count;

댓글 없음:

댓글 쓰기