Potresti usare una DataTable e farla scorrere "settando opportunamente " i vari ";":
Puoi crearti un wrapper che carichi i dati in una DataTable
Per esempio
Response.Clear();
StreamWriter sw = new StreamWriter(Server.MapPath("~/public/prvoa.csv"), false);
DataTable dt = rw.Caricadati();
int iColCount = dt.Columns.Count; //Conto le colonne
for (int i = 3; i < iColCount ; i++)
{
sw.Write(dt.Columns[i]);
if (i < iColCount )
{
sw.Write(";");
}
}
ecc... a seconda di come vuoi che il tuo file csv venga generato
Ovviamente è solo una tipologia di soluzione al tuo problema,ciao