在VB.NET中使用LINQ删除多个记录

时间:2017-11-06 14:11:54

标签: vb.net dictionary

我有以下代码段,根据DataTablecustom_id中的行删除为" Y" (即,如果custom_id的值为" Y" dictionary),则删除该行。现在列表fldListWithUnlimitedDataEnabled中的记录很少,而DataTable objDt中的记录相对较多,有没有办法从{{1}中删除特定行(如objRow.Delete()中所做的那样) ,所以我不必遍历整个objDt几个记录?

DataTable

1 个答案:

答案 0 :(得分:1)

如果objDt是强类型DataSet的一部分而custom_id是DataTable的主键,它将有一个FindBycustom_id方法来查找该行。

自动生成函数的名称为FindBy,后跟主键名称。 然后,您可以遍历您的密钥列表,找到该行并删除它们。

For Each id in fldListWithUnlimitedDataEnabled
    Dim objRow = objDt.FindBycustom_id(id)
    if objRow IsNot Nothing Then objRow.Delete()
Next

如果这不是可用选项,您可以随时使用选择

For Each id in fldListWithUnlimitedDataEnabled
    Dim objRows = objDt.Select("custom_id = '" & id & "'")  
    For Each row in objRows 
        row.Delete()
    Next
Next