Я прокручиваю массив datarows и когда конкретный случайный элемент недействителен, я хочу удалить этот элемент и получить новое общее количество, чтобы получить другой случайный элемент. Но когда я удаляю datarow, datarow не уходит ... И да, возможно, есть намного лучший способ сделать это, но я недостаточно умен, чтобы это сделать.Как удалить datarow из массива datarow?
Вместо того, чтобы удалять строку, я вижу это внутри
ItemArray = podLps[1].ItemArray
бросил исключение типа System.Data.RowNotInTableException
//PHASE 1: Get all LPs in the pod and add to collection
List<DataRow> allLps = dtLp.AsEnumerable().ToList();
DataRow[] podLps = allLps.Where(x => x.ItemArray[0].ToString() == loPod).ToArray();
//PHASE 2: Pick a random LP from collection that has valid WAVE1
for (int i = podLps.Count(); i > 0; i--)
{
//Recount items in collection since one may have been removed
int randomIndex = random.Next(podLps.Count());
var randomLpUserId = podLps[randomIndex].ItemArray[1].ToString();
var randomLpWave1 = int.Parse(podLps[randomIndex].ItemArray[2].ToString());
//Get WAVE1 # for selected LP
lpNumberOfLoans = GetNumberOfLoans(session, randomLpUserId);
//check if LP has valid WAVE1 then use this person
if (randomLpWave1 > lpNumberOfLoans)
{
return randomLpUserId;
}
else
{
podLps[randomIndex].Delete();
}
}
DataTable allLps = dtLp.AsEnumerable(). Где (х => x.ItemArray [0] .ToString() == loPod) .CopyToDataTable(); – jdweng
@punkouter, работающий с DataTable в моем примере ниже, обратит внимание на то, как я назначаю «переменную строки», это работает – MethodMan