Fatti :
A.- B._, nato nel 1967, già impiegato della C._ Società cooperativa di assicurazione sulla vita, è assicurato contro la perdita di guadagno presso la Cassa malati Helsana, in base ad un contratto di assicurazione collettiva stipulata dal suo datore di lavoro in favore del proprio personale. L'interessato è stato incapace al lavoro a seguito di malattia al 100 % dal 27 gennaio 1997 al 18 gennaio 1998 e nella misura del 50 % dal 19 gennaio al 15 febbraio 1998. L'Helsana ha assunto il caso versando le indennità alla C._ Assicurazioni sino alla cessazione del rapporto di lavoro, avvenuto il 30 settembre 1997. In seguito a tale data la Cassa ha erogato le indennità giornaliere direttamente all'assicurato. B._ ha ottenuto, a far tempo dal 1° ottobre 1997 e sino al 21 gennaio 1998, prestazioni per un importo di fr. 11 872. 60.
B.- Rappresentato dall'avvocato L._, l'interessato è insorto con ricorso al Tribunale delle assicurazioni del Cantone Ticino, censurando il modo in cui erano state versate le indennità giornaliere. Reputava che per il menzionato periodo gli spettava una somma di fr. 13 919. 10, litigioso essendo il quesito di sapere se le indennità, pari all'80 % del guadagno precedentemente percepito, fossero o meno da erogare oltre 360 giorni.
Con giudizio 23 ottobre 1998 l'autorità di ricorso cantonale ha respinto il gravame, inteso al versamento completivo di una somma di fr. 2046. 50, pari alla differenza fra i due suindicati importi. Essa si fondava sulla constatazione che dopo il 30 settembre 1997 non sussisteva più alcun rapporto assicurativo e che quindi nemmeno spettava all'insorgente un diritto alle indennità già ottenute per il periodo decorso da quella data; non si è invece pronunciata sulla questione sollevata dal ricorrente in sede amministrativa e ricorsuale.
Con scritto del 20 novembre 1998 la Cassa ha chiesto all'assicurato la restituzione di un importo di fr. 12 070. 60, corrispondente alle prestazioni inizialmente riconosciute per il periodo successivo al 30 settembre 1997.
C.- Tramite il suo legale, B._ interpone al Tribunale federale delle assicurazioni un ricorso di diritto amministrativo avverso la pronunzia cantonale. Unitamente a considerazioni di merito, egli innanzitutto addebita ai giudici di prime cure di aver operato una reformatio in peius senza dargli la possibilità di ritirare il gravame.
La Cassa, invocando i motivi ritenuti nel giudizio cantonale, propone la disattenzione del gravame e ribadisce la richiesta di restituzione della totalità delle prestazioni versate a decorrere dal 1° ottobre 1997. Fa notare che l'assicurato avrà comunque la possibilità di ricorrere contro la relativa decisione. Invitato a determinarsi, l'Ufficio federale delle assicurazioni sociali non ha presentato osservazioni.

Diritto :
1.- Con il suo ricorso, l'assicurato addebita al Tribunale cantonale, unitamente a considerazioni di merito, di aver operato una reformatio in peius senza dargli la possibilità di ritirare il gravame.
2.- Nel caso in esame è effettivamente lecito chiedersi se non si debba ammettere una reformatio in peius: infatti, anche se nulla dice nel dispositivo, nei motivi la pronunzia cantonale è senza ambiguità circa la cessazione degli obblighi assicurativi della Cassa malati Helsana a partire dal 30 settembre 1997. Del resto, tale circostanza non è sfuggita all'amministrazione, la quale ha chiesto a B._, in data 20 novembre 1998, il rimborso dell'indebito versamento. Dovrebbero quindi valere i principi posti dalla giurisprudenza, secondo i quali la parte ricorrente dev'essere invitata ad esprimersi sulla ventilata modifica a suo detrimento della pronunzia querelata e deve esplicitamente essere resa attenta circa la possibilità di ritirare il gravame. Costituisce segnatamente una reformatio in peius un rinvio al cui seguito è presumibile con certezza un pregiudizio per l'interessato (<ref-ruling> consid. 2a e b; DLA 1995 no. 23 pag. 139 consid. 3b). Ora, pur non predisponendo un rinvio, il modo di procedere della Corte cantonale ha comportato una vanificazione delle garanzie stabilite dalla giurisprudenza nel caso della reformatio in peius. Né di rilievo è al proposito il fatto, addotto dalla Cassa nella risposta all'impugnativa, che l'assicurato abbia la possibilità di ricorrere avverso la decisione di restituzione, quando si osservi che sul gravame dovrà comunque statuire la stessa autorità che già si è espressa chiaramente nei motivi del precedente giudizio. Tuttavia, il tema di sapere se quanto disposto dal Tribunale delle assicurazioni del Cantone Ticino sia costitutivo di una reformatio in peius può, per i motivi di cui si dirà in seguito, rimanere insoluto.
3.- a) Nel giudizio impugnato, l'autorità di ricorso cantonale ha fatto capo a una motivazione diversa da quella discussa in sede amministrativa, senza informarne preventivamente l'interessato. Essa ha in effetti respinto il gravame constatando che sin dal 1° ottobre 1997 non sussisteva più rapporto assicurativo, mentre la Cassa, dal canto suo, aveva rifiutato di erogare indennità giornaliere per una durata superiore a 360 giorni, ossia posteriormente al 21 gennaio 1998. Orbene, secondo costante giurisprudenza, il fatto che la decisione in lite sia stata confermata dalla precedente istanza ponendo a fondamento una motivazione diversa da quella ritenuta dall'amministrazione è costitutivo di una violazione del diritto di essere sentito (<ref-ruling> consid. 4b, 116 V 185 consid. 1a, 115 Ia 96 consid. 1b con rinvii).
Detta violazione non è sanabile dinanzi al Tribunale federale delle assicurazioni, in quanto trattasi di un caso di lesione grave del menzionato diritto (cfr. <ref-ruling> consid. 4c).
b) Discende da quanto precede che il gravame merita accoglimento nel senso che, in annullamento del giudizio impugnato, la causa dev'essere rinviata all'autorità di ricorso cantonale affinché conferisca all'insorgente, prima di statuire, la possibilità di determinarsi sulla prospettata motivazione.

Per questi motivi, il Tribunale federale delle assicurazioni
pronuncia :
I.Il ricorso di diritto amministrativo è accolto nel senso che, annullato il giudizio del Tribunale delle assicurazioni del Cantone Ticino del 23 ottobre 1998, la causa è rinviata all'autorità giudiziaria di prima istanza affinché dia al ricorrente la possibilità di determinarsi.
II.Non si percepiscono spese giudiziarie.
III. La Cassa malati opponente verserà al ricorrente fr. 2500. - a titolo di indennità di parte per la procedura federale.
IV. La presente sentenza sarà intimata alle parti, al Tribunale cantonale delle assicurazioni, Lugano, e all'Ufficio federale delle assicurazioni sociali.