var list = objTable.AsEnumerable();
var query = from l in list
where l.Field<string>("root") == "1"
select l;
var result = query.Concat(from q in query
from l in list
where l.Field<string>("root") == q.Field<string>("id")
select l);
foreach (var r in result)
{
Console.WriteLine("value has id:{0}, root:{1}", r.Field<string>("id"), r.Field<string>("root"));
}