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
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Utilizzare una qualunque lista per i parametri di tipo params in C#
Gestire gli accessi con Token su Azure Container Registry
Migrare una service connection a workload identity federation in Azure DevOps
Change tracking e composition in Entity Framework
Paginare i risultati con QuickGrid in Blazor
Implementare l'infinite scroll con QuickGrid in Blazor Server
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Creare una libreria CSS universale - Rotazione degli elementi
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Criptare la comunicazione con mTLS in Azure Container Apps