ho il seguente per una classe di posizione:Int32.ToString() troppo lento
public struct Pos
{
public int x;
public int y;
public float height;
public Pos (int _x, int _y, float _height)
{
x = _x;
y = _y;
height = _height;
}
public override string ToString()
{
return x.ToString() + "," + y.ToString();
}
}
Ma dal momento che io chiamo Pos.ToString()
migliaia di volte, questo è troppo lento per me. Tutto ciò di cui ho bisogno è un modo efficiente per ottenere un unico valore univoco basato su Pos.x
e Pos.y
, da utilizzare come chiave del dizionario. Nota: non riesco a utilizzare Pos
perché sto confrontando diverse istanze di Pos
solo su x
e .
Non utilizzare 'ToString' per le chiavi del dizionario. Implementare 'IEquatable'. –
Non c'è bisogno di 'ToString()' in concatenazione. Basta usare 'x +", "+ y' –
string.Format (" {0}, {1} ", x, y) dovrebbe renderlo leggermente migliore – Yahya