strPb1.Length sera toujours supérieur à 0 dans votre code. S'il n'y a pas de virgule, Split(',') renverra toujours un tableau contenant la chaîne d'origine. Par conséquent, votre réglage initial de la valeur n'est pas nécessaire.
Le QueryString et le split() lui-même semblent aller bien. Peut-être que le problème réside ailleurs dans votre code ou dans la chaîne de requête que vous utilisez. Si vous comptez rajouter des virgules dans votre chaîne, pourquoi les supprimer ?
En outre, une alternative à l'utilisation d'un paramètre délimité par des virgules consiste à réutiliser le même paramètre.www.test.com/?pm1=test1&pm1=test2&pm1=test3
string[] strPb1 = Request.QueryString.GetValues("pm1");
if(strPb1 != null && strPb1.Length > 0)
{
for(int i = 0; i != strPb1.Length; i++)
{
//Code here
}
}