Random r = new Random();
int InvadorNumberA=r.Next(0,5);
int randomShot = r.Next(5);
List<Invaders> invadersShooting = new List<Invaders>();
Invaders invaderA=new Invaders();
var invaderByLocationX = from invadersSortByLocation in invaders
group invadersSortByLocation by invadersSortByLocation.Location.Y
into invaderGroup
orderby invaderGroup.Key
select invaderGroup;
invadersShooting = invaderByLocationX.Last().ToList();
try
{
invaderA = invadersShooting[InvadorNumberA];// constantly being thrown there. i cant catch the exception.. so i guess it is being thrown somewhere else. any idea on how i stop it from being thrown?
}
catch(ArgumentOutOfRangeException dd)
{
invaderA = invadersShooting[0];
}
трассировка стека
"в System.ThrowHelper.ThrowArgumentOutOfRangeException (аргумент ExceptionArgument, ресурс ExceptionResource) \ r \ n в System.ThrowHelper.ThrowArgumentOutOfRangeException () \ r \ n в System.Collections.Generic.List`1.32_ItI () r в WindowsFormsApplication1.Game.ReturnFire () в D: \ Documents and Settings \ Dima \ Мои документы \ Visual Studio 2008 \ Проекты \ SpaceInvaders \ SpaceInvaders \ SpaceInvadorGame \ Game.cs: строка 444 "
Целевой сайт
{Void ThrowArgumentOutOfRangeException (System.ExceptionArgument, System.ExceptionResource)}
Дополнительная информация:
{"Index was out of range. Must be non-negative and less than the size of the collection.\r\nParameter name: index"}
{"Индекс был вне диапазона. Должен быть неотрицательным и меньше размера коллекции. \ R \ nПараметр параметра: индекс"}
Я избавился от исключения, просто сделав это
invadersShooting = invaderByLocationX.Last().ToList();
invaderA = invadersShooting[r.Next(0,invadersShooting.Count)];
но мне все еще любопытно, где было брошено исключение .. хммм