2011-09-26 81 views
0

我有这一块,我试图将转换为拉姆达码 -绑定嵌套列表

foreach (var facet in response.Result.Facets) 
      { 
       var newFacet = new Facet {Parent = facet.Title}; 

       foreach (var element in facet.Subelements) 
       { 
        newFacet.Items.Add(new Facet 
              { 
               Title = element.Title, 
               TotalResults = element.TotalResults 
              }); 
       } 

       searchModel.Facets.Add(newFacet); 
      } 

这里是我迄今为止 -

response.Result.Facets.ForEach(x => searchModel.Facets.Add(new Facet 
                       { 
                        Parent = x.Title, 
                        Items = ???//x.Subelements.ForEach(y=>) 
                       })); 

而类 -

public class Facet 
{ 
    public Facet() 
    { 
     Items = new List<Facet>(); 
    } 

    public string Parent { get; set; } 
    public List<Facet> Items { get; set; } 
    public int TotalResults { get; set; } 
    public string Title { get; set; } 
} 



    public class SearchElement 
    { 
     public string Parent { get; set; } 
     public string Title { get; set; } 
     public int TotalResults { get; set; } 
     public IList<ESearchElement> Subelements { get; set; } 
    } 

如何绑定List<SearchElement>List<Items>由每个元件(标题= YT映射itle ..)所有在一个lambda表达式内的行?可能吗?

回答

0

尝试这样:

searchModel.Facets.AddRange(
    from facet in response.Result.Facets 
    select new Facet 
    { 
     Parent = facet.Title, 
     Items = new List<Facet>(
      from element in facet.Subelements 
      select new Facet 
      { 
       Title = element.Title, 
       TotalResults = element.TotalResults 
      }), 
    }); 

编辑:每在评论请求LAMBDA版本。

searchModel.Facets.AddRange(
    response.Result.Facets.Select(
     facet => new Facet 
     { 
      Parent = facet.Title, 
      Items = new List<Facet>(
       facet.Subelements.Select(
        element => new Facet 
        { 
         Title = element.Title, 
         TotalResults = element.TotalResults 
        })), 
     })); 

与LINQ非常相似。这是你以后的事吗?

+0

谢谢,但这是LINQ。我们可以在Lambda中做同样的事吗? – tempid

+0

@ user349308 - 我添加了一个lambda版本。 – Enigmativity