2015-08-10 2 views
1

Как это сделать:Как распознать данные как часть другого типа данных?

У меня есть два datatables:

ПЕРВЫЕ: DT_All ---> состоит из: emp_num, .... других столбцов

ВТОРОЙ: DT_Part --- > состоит из одного столбца в качестве ключа emp_num


, где DT_part может быть частью DT_ALL или нет в этом datatable.

Если бы это было частью DT_All

Я хочу способ распознать их в DT_ALL .Как сделать это легко и быстро?


Пример:

DT_All

emp_num column1 column2 column3 

    227  7  33.3  ss 

    155  5  10.7  mm 

    122  5  1.66  aa 

    678  2  8.9  rr 

    555  1  1.11  aa 

DT_part:

emp_num 

    155 

    678 

Я хочу вывода, как это:

emp_num column1 column2 column3 flag 

    227  7  33.3  ss  0 

    155  5  10.7  mm  1 

    122  5  1.66  aa  0 

    678  2  8.9  rr  1 

    555  1  1.11  aa  0 
+0

Можете ли вы добавить образец ввода \ вывода, чтобы сделать его более понятным? –

ответ

1

Вы можете сделать left join на обеих таблицах, как это: -

var result = from t1 in dt1.AsEnumerable() 
      join t2 in dt2.AsEnumerable() 
      on t1.Field<int>("emp_num") equals t2.Field<int>("emp_num") into g 
      from foo in g.DefaultIfEmpty() 
      select new 
      { 
       emp_num = t1.Field<int>("emp_num"), 
       col1 = t1.Field<string>("col1"), 
       flag = foo != null ? 1 : 0 
       }; 

Working Fiddle.

0

Вы можете использовать оператор Contains. Псевдо код ниже (не тестировалось, некоторые опечатки могут быть сделаны):

var items = DT_All 
       .AsEnumerable() 
       .Where(x => DT_Part.Field<string>("emp_num").Contains(x.EmpNum)); 
+0

Я хочу распознать их в том же datatable 'DT_All', а не в результате –

+0

Итак, опишите, что вы имеете в виду под« распознать их в одном и том же цифровом виде » – MajkeloDev

+0

Я имею в виду при просмотре' DT_ALL' самой ican распознает пересечение flag или somewayway –

 Смежные вопросы

  • Нет связанных вопросов^_^