2013-05-15 27 views
0

我有五種不同的網絡服務如何合併兩個List <>參數?

List<_FiltA> A= new List<_FiltA>();   
List<_FiltB> B= new List<_FiltA>();   
List<_FiltC> C= new List<_FiltA>(); 
List<_FiltD> D= new List<_FiltA>();   
List<_MainFilt> Main= new List<_MainFilt>(); 

和4種不同的方法和1 [WebMethod]每個列表的參數 對於前:

 [WebMethod] 
      public List<_MainFilt> Search(string p1,int p2 ...) 
      { 
       Some code here... 

      _FiltA= _FiltA(someParameters); //go to FiltA method 
      _FiltB= _FiltB(someParameters); 
        . 
        . 
        some code... 
        . 
        . 
       return Search; //get Seach values 
      } 

      public List<_FiltA> FiltA (someParameters) 
     { 
      _FiltA FLG3 = new _FiltA(); 

      some codes.... 

       FLG3 = new _FiltA 
          { 
           PriceLink = Link, 
           Price = valueSomething, 
           Price2 = valueSomething1 
          }; 
          Search.Add(FLG3); 

      return FiltA ; 

     } 

而且3個方法是這樣的。

我想結合這些4列表(_ListA,_ListB,_ListC,_ListD)在List<_MainFilt>我該怎麼組合?或者有什麼解決這個問題的建議?

+1

'_FiltA'和'_MainFilt'類型有什麼關係?您想以什麼方式合併列表?你想連接它們,還是從數據中創建新的對象? – Guffa

+0

_MainFilt是_FiltA的一個子類還是超類?如果只有在這兩種情況下,你可以輕鬆地做到這一點,否則你需要一些轉換方法從_FiltA轉換到_MainFilt並使用AddRange方法將它們放在一起 –

+0

我想在_MainFilt中添加所有列表<>參數值,_MainFilt包括所有參數他們有。但它不是必要的,它可以結合他們(_ListA,_ListB,_ListC,_ListD) – Bip

回答

1

,而不是返回List<_MainFilt>的,你可以返回一個包含4所列出的過濾器的對象,e.g:

public class Filters 
{ 
    public List<_FiltA> FilterA {get; set;} 
    public List<_FiltB> FilterB {get; set;} 
    public List<_FiltC> FilterC {get; set;} 
    public List<_FiltD> FilterD {get; set;} 
} 

... 

[WebMethod] 
public Filters Search(string p1,int p2 ...) 
{ 
    return new Filters { 
    FilterA = _FiltA(someParameters), 
    FilterB = _FiltB(someParameters), 
    FilterC = _FiltC(someParameters), 
    FilterD = _FiltD(someParameters), 
    }; 
} 
+0

每個列表<>,但它說「_FiltA是一個'類型',但像'變量'」我聲明所有列表在過濾器類,但它沒有 – Bip

+0

我使用Dictionary <>爲SomeParameters它可能是這個錯誤,因爲Dictionary <> – Bip

1

你可以concatenate他們。

public List<_MainFilt> Search(string p1,int p2 ...) { 
    var result = _FiltA(someParameters) 
     .Concat(_FiltB(someParameters)) 
     .Concat(_FiltC(someParameters)) 
     .Concat(_FiltD(someParameters)) 
     .ToList(); 
    // Do something with the list... 
} 
相關問題