고정 치수가없는지도가 실제로 필요하다고 가정하면 기본 데이터 유형으로 사전을 사용하는 것이 가장 좋을 수 있습니다. 크기 조정에 너무 많은 시간을 할애해야합니다. 그래서 지금
class Map<T>
{
Dictionary<int, Dictionary<int, T>> map =
new Dictionary<int, Dictionary<int, T>>();
public T this[int row,int column]
{
get {
Dictionary<int, T> rowDic;
if(!map.TryGetValue(row,out rowDic))
{
return default(T);
}
T val;
if(!rowDic.TryGetValue(column, out val))
{
return default(T);
}
return val;
}
set {
Dictionary<int, T> rowDic;
if(!map.TryGetValue(row,out rowDic))
{
map[row] = new Dictionary<int, T>();
}
map[row][column] = value;
}
}
}
를 그냥 2 차원 배열처럼 사용할 수 있습니다 :
이
var map = new Map<string>();
map[88,33] = "foo";
'IList의는 [,]가 '실제로 당신이 이와 같은 구조를 사용할 수 등으로
'IList'객체의 2 차원 배열 ... 즉 3 차원 배열입니다. –
Anthony
첫 번째 목록의 목록입니다, 두 번째 목록의 2 차원 배열입니다 - 그들은 실제로 동일하지 않습니다. – knittl
당신이 그들에 관해 나를 더 정확하게 가르쳐 줄 수 있다면 그것은 대단 할 것입니다 ... – Roboticist