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 に答える