TyraS
(Tyra)
April 17, 2024, 7:13am
1
is there a way where i can concat values from 4 data columns, 2 from 1 datatable, and 2 from another datatable, exluding duplicate values, and blanks?
without for loop?
e.g.
DT 1
email 1 | email 2
aaaa@mads.com | bbbb@kso.com
xxxx@m.com | kkkk@m.com
DT 2
email 1 | email 2
aaaa@mads.com | kkkk@m.com
yyyy@asd.com | zz@ma.com
Output: aaaa@mads.com ; bbbb@kso.com ; kkkk@m.com ; xxxx@m.com ;yyyy@asd.com ; zz@ma.com
Anil_G
(Anil Gorthi)
April 17, 2024, 7:28am
2
@TyraS
Try this
requiredstring = String.Join(";",(string.Join(";",Dt1.AsEnumerable.Select(function(x) String.Join(";",x.Itemarray))) + ";" + string.Join(";",Dt2.AsEnumerable.Select(function(x) String.Join(";",x.Itemarray)))).Split(";"c).Distinct)
Cheers
Ajay_Mishra
(Ajay Mahendra Mishra)
April 17, 2024, 7:29am
3
Can you prepare a Excel file and create all sheets with respect to the all the input tables and expected output?
Regards,
Ajay Mishra
Parvathy
(PS Parvathy)
April 17, 2024, 7:41am
4
Hi @TyraS
=> Read Range Workbook
Output-> dt1
=> Read Range Workbook
Output-> dt2
=> Use below code in Assign:
distinctEmails = dt1.AsEnumerable().Select(Function(row) row("email 1").ToString().Trim()).Union(dt1.AsEnumerable().Select(Function(row) row("email 2").ToString().Trim())).Union(dt2.AsEnumerable().Select(Function(row) row("email 1").ToString().Trim())).Union(dt2.AsEnumerable().Select(Function(row) row("email 2").ToString().Trim())).Where(Function(email) Not String.IsNullOrWhiteSpace(email))
distinctEmails
is of DataType iEnumerable(System.String)
=> Print in in Message Box
String.Join("; ", distinctEmails)
Sequence12.xaml (8.4 KB)
Hope it helps!!
ppr
(Peter Preuss)
April 17, 2024, 8:01am
5
TyraS:
without for loop
we can condense, but would not exclude any options
Assign Activity
strFlat =
(From t In {dt1,dt2}
From v In t.AsEnumerable().SelectMany(Function (r) r.ItemArray)
Select s=v.ToString.Trim).Distinct().Aggregate(Function (x,y) x &";"& y)
Feel free to externalize {dt1,dt2} also into a variable