I have a datatable like this (example): CurrentText CurrentValue OldText OldValue -------------------------------------------- Test1 1 OldTest1 1 Test2 2 OldTest2 2 I want to do a union so the result looks like this Text Value IsCurrent Test1 1 true Test2 2 true OldTest1 1 falseOldTest2 2 false How I do this right now: \[code\] var lst = dt.AsEnumerable().Select(x => new MyClass { Text = x.Field<string>("CurrentText"), Value = http://stackoverflow.com/questions/15489985/x.Field<string>("CurrentValue"), IsCurrent=true }) .Union(dt.AsEnumerable().Select(x => new MyClass { Text = x.Field<string>("OldText"), Value = http://stackoverflow.com/questions/15489985/x.Field<string>("OldValue"), IsCurrent=false }) ).Distinct().ToList(); \[/code\]The only question I have: is there a better/faster approach?