Se débarrasser des valeurs de chaîne nulles / vides dans un tableau C #

J’ai un programme où un tableau obtient ses données en utilisant ssortingng.Split (délimiteur char []). (en utilisant ‘;’ comme délimiteur.)

Certaines des valeurs, cependant, sont nulles. C’est-à-dire que la chaîne a des parties où il n’y a pas de données, alors elle fait quelque chose comme ça:

1; 2; ; 3;

Cela conduit à mon tableau ayant des valeurs nulles.

Comment puis-je me débarrasser d’eux?

Essaye ça:

yourSsortingng.Split(new ssortingng[] {";"}, SsortingngSplitOptions.RemoveEmptyEnsortinges); 

Vous pouvez utiliser la méthode d’extension Where linq pour renvoyer uniquement les valeurs non null ou vides.

 ssortingng someSsortingng = "1;2;;3;"; IEnumerable myResults = someSsortingng.Split(';').Where(s => !ssortingng.IsNullOrEmpty(s)); 
 public static ssortingng[] nullLessArray(ssortingng[] src) { Array.Sort(src); Array.Reverse(src); int index = Array.IndexOf(src, null); ssortingng[] outputArray = new ssortingng[index]; for (int counter = 0; counter < index; counter++) { outputArray[counter] = src[counter]; } return outputArray; } 

Avant de fractionner les données, vous devez remplacer plusieurs points-virgules adjacents par un point-virgule.

Cela remplacerait deux points-virgules par un point-virgule:

 datastr = datastr.replace(";;",";"); 

Mais, si vous avez plus de deux points-virgules ensemble, regex serait mieux.

 datastr = Regex.Replace(datastr, "([;][;]+)", ";"); 
  words = poly[a].Split(charseparators, SsortingngSplitOptions.RemoveEmptyEnsortinges); foreach (ssortingng word in words) { richTextBox1.Text += (d + 1)+ " " + word.Trim(',')+ "\r\n"; d++; } 

charseparators est un espace