Molto spesso abbiamo la necessità di parsare un file per analizzarne il contenuto. Altrettanto spesso questi file hanno una riga per ogni record e le colonne sono o a lunghezza fissa o separate da un carattere (per esempio, i file csv usano una virgola per separare le colonne). In questi possiamo ottenere i singoli record splittando il contenuto del file in base al carattere di "a capo" e poi per ogni riga splittare in base al carattere che separa le colonne.
Grazie alla clausola Let di Linq possiamo facilmente raggiungere lo scopo come mostrato nel seguente esempio.
var rows = fileContent.Split(new[] {Environment.NewLine}, StringSplitOptions.None); var rows = from r in rows let columns = r.Split(",") select new { Id = columns[0], FirstName = columns[1], LastName = columns[2] };
La prima riga genera le righe, mentre l'istruzione Linq prima esegue lo split per generare le colonne e poi crea un oggetto anonimo con esse.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare automaticamente un workflow di GitHub (parte 2)
Ordinare randomicamente una lista in C#
Hosting di componenti WebAssembly in un'applicazione Blazor static
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Utilizzare un service principal per accedere a Azure Container Registry
Utilizzare Tailwind CSS all'interno di React: primi componenti
Miglioramenti nell'accessibilità con Angular CDK
Aggiungere interattività lato server in Blazor 8
Usare le navigation property in QuickGrid di Blazor
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Usare le collection expression per inizializzare una lista di oggetti in C#
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core