strPb1.Length bude ve vašem kódu vždy větší než 0. Pokud zde nejsou žádné čárky, Split(',') bude stále vracet pole obsahující původní řetězec. Vaše počáteční nastavení hodnoty proto není nutné.
Samotný QueryString a split() se zdají být v pořádku. Možná je problém jinde ve vašem kódu nebo v řetězci dotazů, který používáte. Pokud se chystáte přidat čárky zpět do řetězce, proč je odstraňovat?
Alternativou k použití parametru odděleného čárkami je také opětovné použití stejného 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
}
}