如何组合两个列表<>参数

本文关键字:列表 参数 两个 何组合 组合 | 更新日期: 2023-09-27 18:13:32

我有五个不同的web服务

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个这样的方法

我想在List<_MainFilt>中组合这4个列表(_ListA,_ListB,_ListC,_ListD)如何组合?或者对解决这个问题有什么建议吗?

如何组合两个列表<>参数

不返回List<_MainFilt>,您可以返回一个包含4个过滤器列表的对象,例如:

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),
  };
}

您可以直接将它们连接起来。

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...
}