0

我想将 filterType 传递给 GetPeronMemberDTO,如何实现这一点。

filters = filterItems.
    AsQueryable().
    Select(z => new Person()
    {
        Name = z.Name,
        ID = Convert.ToString(z.ID),
        FilterType = GetFilterType(Convert.ToString(z.TemplateID)),
        // TODO : How to pass the filtertype in the below function
        FilterMembers = GetPeronMemberDTO(
            Convert.ToString(z.ID), 
            searchParamDTO, 
            Convert.ToString(z.TemplateID)),
    })

谢谢 DS

4

2 回答 2

4

使用查询语法,您可以使用let表达式:

filters = from z in filterItems.AsQueryable()
          let filterType = GetFilterType(Convert.ToString(z.TemplateID))
          select new Person
          {
            Name = z.Name,
            ID = Convert.ToString(z.ID),
            FilterType = filterType,
            FilterMembers = GetPeronMemberDTO(Convert.ToString(z.ID), 
              searchParamDTO, Convert.ToString(z.TemplateID), filterType)
          }
于 2012-04-23T12:21:33.060 回答
1
filters = filterItems
          .AsQueryable()
          .Select(z => new {
                Item = z,
                FilterType = GetFilterType(Convert.ToString(z.TemplateID))
          })
          .Select(z => new Person()
            {
                Name = z.Item.Name,
                ID = Convert.ToString(z.Item.ID),
                FilterType = z.FilterType,
                FilterMembers = GetPeronMemberDTO(Convert.ToString(z.Item.ID), searchParamDTO, z.FilterType),
            })

或使用基于查询的语法,如 Anders Abels 的回答。

于 2012-04-23T12:21:47.953 回答