2012-04-05 27 views
0

目前在工作中我需要將一箇舊的ASP頁面翻譯成C#(asp.net)。 在asp頁面上遇到過濾函數,我想知道C#是否有一個等效的函數?ASP Filter功能 - > C#等價函數

b = Filter(servicePeriodsArray,CStr(Year(billingDate) & Month(billingDate))) 

昨天我把它翻譯成了下面這段代碼。

string lookup1 = billingDate.Year.ToString() + billingDate.Month.ToString(); 
      for (int k = 0; k < servicePeriodsArray.Length; k++) 
      { 
       if (servicePeriodsArray[k].Contains(lookup1)) 
       { 
        b[c] = servicePeriodsArray[k]; 
        c++; 
       } 
      } 

既然我是一個完整的老白ASP語言,我想知道我的翻譯是否正確。 如果你們中的任何一個人都知道C#的ASP函數Filter的等價函數,請告訴我,或者如果你們能幫助我翻譯,那就太棒了。

親切的問候 凱文

+1

的是沒有所謂的'Filter' VBScript中的本地函數。因此,雖然目前爲止有兩個答案可能在正確的路徑上,但他們a)返回一個「IEnumerable」,該Filter'不太可能實現(它可能會返回一個數組),並且b)太多未知的,也許你應該找到'Filter'的代碼並且將其轉換或者在這裏發佈,如果你有困難的話。 – AnthonyWJones 2012-04-06 19:40:53

回答

1

使用LINQ如果運營商將是最簡單的方法。

string lookup1 = billingDate.Year.ToString() + billingDate.Month.ToString(); 
var b = servicePeriodsArray.Where(i => i.Contains(lookup1)); 
0
b = servicePeriodsArray.Where(value = value.Contains(billingDate.Year.ToString() + billingDate.Month.ToString());