c# - 如何从数据行数组中删除数据行?

标签 c# linq 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();
   }
}

最佳答案

看看这个例子,它应该为您指明删除行的正确方向我刚刚测试过它并且它有效

for (int i = myDataTable.Rows.Count - 1; i >= 0; i--)
{
    DataRow row = myDataTable.Rows[i];  //Remove
    if (myDataTable.Rows[i][0].ToString() == string.Empty)
    {
        myDataTable.Rows.Remove(row);
    }
}

关于c# - 如何从数据行数组中删除数据行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34795458/

相关文章:

c# - 分层架构中的 Entity Framework ?

c# - SEC7123 : Request header Key was not present in the Access-Control-Allow-Headers list

c# - 如何将日期从列表框发送到另一种形式的文本框

linq - 如何将此 SQL 查询转换为 LINQ to SQL

mysql - 如何使用 DataRow 更新数据库?

c# - 从主线程调用函数并使其与主线程中的函数并行工作

C# DateTime 从 linq 到分钟

c# - 在 ANTs 分析器信息的帮助下识别性能瓶颈

c# - 如何将新的DataRow 添加到DataTable 中?

c# - 将数据行值转换为字符串?