strPb1.Length zawsze będzie większe niż 0 w twoim kodzie. Jeśli nie ma przecinków, Split(',') nadal zwróci tablicę zawierającą oryginalny ciąg. Dlatego początkowe ustawienie wartości nie jest konieczne.
Sam QueryString i split() wydają się być w porządku. Być może problem leży w innym miejscu kodu lub ciągu zapytania, którego używasz. Jeśli zamierzasz dodać przecinki z powrotem do ciągu, po co je usuwać?
Ponadto alternatywą dla użycia parametru rozdzielanego przecinkami jest ponowne użycie tego samego parametru.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
}
}