如何使用C#包含

Ada*_*avi 3 c# datatable contains

我有一个带有多列主键的DataTable

dt.PrimaryKey = new DataColumn[] {dt.Columns["Name"], dt.Columns["Type"] };
Run Code Online (Sandbox Code Playgroud)

现在我想检查我的DataTable dt是否包含(Adarsh,开发人员)

我必须在Contains方法中传递两个值

我尝试使用以下似乎不起作用

DataRow dr = dt.Rows(e.RowIndex); 
DataRow drNew = dt.NewRow();
drNew["Name"] = dr["Name"];
drNew["Type"] = dr["Type"];
drNew["Address"] = dr["Address"];

if(dt.Rows.Contains(drNew["Name"].ToString(), drNew["Type"].ToString())) //This gives me an error
{
}
Run Code Online (Sandbox Code Playgroud)

先感谢您

slo*_*oth 7

DataRowCollection.Contains您要使用的重载具有单个参数:Object[] keys,但您尝试传递两个参数.

您必须将密钥打包成Object[]:

dt.Rows.Contains(new object[]{first_value, second_value})
Run Code Online (Sandbox Code Playgroud)

如果你认为它很难看,你可以将它包装成一个简单的扩展方法,如下所示:

public static class Extenstions
{
    public static bool Contains(this DataRowCollection c, params object[] args)
    {
        return c.Contains(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

这将使你能够像你一样调用它

dt.Rows.Contains(first_value, second_value)
Run Code Online (Sandbox Code Playgroud)