The LINQ statement is not that bad compared to many I have seen. Why do you think it needs to be simplified?
If you just want to simplify the entire block of code, use a foreach statement on the rows in the table like so:
foreach (DataRow row in ds.Tables[0].Rows)
{
if ( Convert.ToInt64( row["Action"].ToString()) == 1 && !string.IsNullOrEmpty( row["Terms"].ToString() ))
listForHyphen.Add( "(" + row["Terms"].ToString() + ")" );
if( Convert.ToInt64(row[ "Action" ].ToString()) == 0 && !string.IsNullOrEmpty(row[ "Terms" ].ToString()) )
listForNdash.Add("(" + row[ "Terms" ].ToString() + ")");
}
This will end up being more efficient than using the LINQ and is very easy to understand.