Efter den lösningshjälpen så fick jag felmeddelande:
Index was outside the bounds of the array
Jag har letat runt på nätet, men änuu inte hittat något om det som jag kan identifiera mig med. Det förekommer ofta i olika tappningar tyvärr. Är detta något som ni råkat ut för tidigare, så
Du försöker komma åt ett fält i arrayen som inte existerar. Du specificerar antingen ett för stort (större än antalet element i arrayen) eller för litet (minustal) index.
// Läs ut data från arrayListen och presentera i GUI (listViewn)
char[] ch = new char[3];
ch[0] = '.';
ch[1] = ',';
ch[2] = ' ';
string[] str;
// kör en try / catch här kanske... om error then ta hela strängen
foreach(Person person in personList)
{
str = person.Fornamn.Split(ch);
ListViewItem lvi = new ListViewItem(str[0]); //Substring split fram till punkt och/eller komma.
lvi.SubItems.Add(str[1]); //Substring split efter punkt och/eller komma.
lvi.SubItems.Add(person.Efternamn);
listView1.Items.Add(lvi);
}
(Som jag fick hjälp av dig/er med tidigare.)
Nu har jag provat lite try/catch på den här rackaren och kommit underfund om att det finns strängar som inte har någon separering med en punkt/komma eller blank. utan bara är en enkel sträng.
Och då har jag lite funderingar på om det finns något sätt att kringå detta på. Typ:
IF (det kajkar ur)
{
ta hela strängen.
}
Eller om man kan använda IndexOfAny metoden på någe vis...
Men hur det skulle se ur kodmässigt är jag lite osäker på.
Jag lyckades knåpa ihop lite till slut iaf. Jag använde mig av "IndexOfAny" metoden
som var klockren i sin funktion. Så lösningen som fick det att funka för mig ser ut så här:
(variabeln svar deklarerad som string & pos deklarerad som integer i Form1)
char[] ch = new char[3];
ch[0] = '.';
ch[1] = ',';
ch[2] = ' ';
string[] str;
foreach(Person person in personList)
{
svar = person.Fornamn;
char[] testchar = {'.', ',', ' '}; //Se om hämtad sträng innehåller efterfrågade tecken
pos = svar.IndexOfAny(testchar); //tilldela värdet till variabeln pos som testchar levererar
if (pos > -1) /*Se om pos har större värde än -1 (-1 för att en array börjar på 0) om det är sant
Kör igenom strängen för splittning */
{
str = person.Fornamn.Split(ch); //Splitta strängen om något av tecknen förekommer
ListViewItem lvi = new ListViewItem(str[0]); //Substring splitta fram till punkt och/eller komma.
lvi.SubItems.Add(str[1]); //Substring split efter punkt och/eller komma.
lvi.SubItems.Add(person.Efternamn);
listView1.Items.Add(lvi);
}
else //Om Pos värdet är -1, gör ingen splitt på strängen
{
ListViewItem lvi = new ListViewItem(person.Fornamn);
lvi.SubItems.Add(person.Fornamn);
lvi.SubItems.Add(person.Efternamn);
listView1.Items.Add(lvi);
}
}
Thankz!
254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a