Üdv, olyanokhoz szól a kérdésem, akik jártasak c# programozásban!?
pl. így:
string row = @"01""|""""valami* ""valami2";
var eredmeny = row.Split(new char[] { '"', '*', '|' }).Select(elem => elem.Trim()).Where(elem => !string.IsNullOrEmpty(elem));
foreach (string elem in eredmeny) // elemenként kilistázzuk a tömböt
{
Console.WriteLine(elem);
}
A foreach csak a képernyőre való kiíratás miatt van a végén.
Az a hosszú sor a lényeg, egy ún. felsorolható string objektumba ( IEnumerable<string> ) darabolja bele a bemeneti stringet, az elemeit így lehet egyesével elérni:
eredmeny.ElementAt(0), eredmeny.ElementAt(1), stb...
De lehet rajta módosítani úgy, hogy hagyományos tömbként lehessen használni:
string[] eredmeny = row.Split(new char[] { '"', '*', '|' }).Select(elem => elem.Trim()).Where(elem => !string.IsNullOrEmpty(elem)).ToArray<string>();
ilyenkor így lehet elérni az elemeit:
eredmeny[0], eredmeny[1], stb...
vagy használhatod a StringSplitOptions.RemoveEmptyEntries-t:
var eredmeny = row.Split(new[] { '"', '*', '|' }, StringSplitOptions.RemoveEmptyEntries);
Ez valamivel hatékonyabb, nem jön létre 2x a tömb (alapból tömböt ad vissza a Split), igaz, hogy ez nem fogja kiszűrni a whitespace only részeket (de az üres elemeket igen), de ez nem is votl benne a kérdésedben.
Tehát ennek az eredménye a megadott bemenetre:
01
valami
<space>
valami2
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!