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.) :h
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å. :l
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! :birp
270 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e