public Unit[] GetUnits( Coordinate coordinate )
{
lock ( _unitSync )
{
HashSet<Unit> units;
if ( _placeUnits.TryGetValue( coordinate, out units ) )
{
var invalids = units.Where( item => item.Coordinate != coordinate ).ToArray();//检查单位是否还在这个坐标。
foreach ( var item in invalids )
units.Remove( item );
return units.ToArray();
}
else
return new Unit[0];
}
}