从数据表中获取匹配的值

时间:2015-09-09 09:35:56

标签: c# linq

我正在尝试从dataTable获取匹配的值,我的代码是

 DataTable match = MnDt.AsEnumerable()
                       .Intersect(dataTable.AsEnumerable(), DataRowComparer.Default)
                       .CopyToDataTable<DataRow>();

MnDt表包含

1   1236    1   0   0   0
3   1236    1   0   0   0
3   5       1   0   55  40

和datatable包含

3   5   1   0   55  40

我希望输出为

3   5   1   0   55  40 

来自MnDt;

请帮我解决..

1 个答案:

答案 0 :(得分:0)

试试这样:

DataTable match = MnDt.AsEnumerable().Where((x) =>
{
    bool second_table_contains_this_row = false;

    foreach (var second_table_row in dataTable.AsEnumerable())
    {
       second_table_contains_this_row = MethodForCompareTwoRows(x, second_table_row);
       if (second_table_contains_this_row)
           break;
    }

    return second_table_contains_this_row;
}.CopyToDataTable<DataRow>();

您可以添加所需的任何逻辑,包括“where”实现中的自定义过滤。始终搜索敏捷解决方案,避免使用“可立即运行”的代码。