2013-04-26 2 views
0

Я всегда получаю сообщение об ошибке в следующей строке:Трудности с SortedList

posDiffRectFList.Add(posDiff_Float, Backgrounds.levellistshapes[j]); 

ArgumentException: запись с тем же ключом уже существует.

Что не так? Что я должен изменить?

Например: Можно ли добавить это в SortedList? Или это невозможно, потому что это два раза тот же ключ (1.5f)?

posDiffRectFList.Add(1.5f, (10,20,100,100)); 

posDiffRectFList.Add(1.5f, (50,70,60,60)); 


SortedList<float, System.Drawing.RectangleF> posDiffRectFList = new SortedList<float, System.Drawing.RectangleF>(); 
for (int j = 0; j <= Backgrounds.LevelListTiles.Count - 1; j++) 
{ 
  posDiff = new Vector2((int)((Backgrounds.LevelListTiles[j].X + Backgrounds.LevelListTiles[j].Width * 0.5) - (Basketball_Rect.X + Basketball_Rect.Width * 0.5)), (int)((Backgrounds.LevelListTiles[j].Y + Backgrounds.LevelListTiles[j].Height * 0.5) - (Basketball_Rect.Y + Basketball_Rect.Height * 0.5))); 
  posDiff_Float = posDiff.Length(); 
  posDiffRectFList.Add(posDiff_Float, Backgrounds.LevelListTiles[j]); 
} 
//check for collision between tiles and basketball, beginning with the lowest posDiff_Float and his corresponding RectangleF 
for (int j = 0; j <= posDiffRectFList.Count - 1; j++) 
{  
 if (kugelNewRect.IntersectsWith(posDiffRectFList.Values[j])) 
+2

Это не очевидно из сообщения об исключении? – svick

ответ

3

В SortedList документации говорится, что вы не можете добавить один и тот же ключ дважды.

ArgumentException - Элемент с указанным ключом уже существует в объекте SortedList.

Смежные вопросы