Opprette en kommaseparert liste fra IList eller IEnumerable
Hva er den reneste måten å lage en kommaseparert liste med strengverdier fra en IList<string>
eller IEnumerable<string>
?
String.Join(...)
opererer på en streng[]
, så det kan være tungvint å jobbe med når typer som IList<string>
eller IEnumerable<string>
ikke enkelt kan konverteres til en strengmatrise.
800
3
.NET 4+ .NET 4+**
Detalj og pre .Net 4.0-løsninger Detalj og pre .0-løsninger
IEnumerable
kan konverteres til en strengmatrise meget enkelt med LINQ (.NET 3.5):Det er enkelt nok å skrive den tilsvarende hjelpemetoden hvis du trenger det:
Så kaller du den slik:
Du kan deretter kalle
string.Join
. Selvfølgelig må du ikke bruke en hjelpemetode:Sistnevnte er litt av en munnfull skjønt :)
Dette er sannsynligvis den enkleste måten å gjøre det på, og ganske performant også - det er andre spørsmål om nøyaktig hvordan ytelsen er, inkludert (men ikke begrenset til) denne.
Fra og med .NET 4.0 er det flere overbelastninger tilgjengelig i
string.Join
, slik at du faktisk bare kan skrive:Mye enklere :)
kan du konvertere IList til en matrise ved hjelp av ToArray og deretter kjøre en string.join-kommando på matrisen.
Du kan bruke
.ToArray()
påLists
ogIEnumerables
, og deretter brukeString.Join()
som du vil.