2011-11-24 2 views
0
 var getAllProducts = _productService.GetAllProducts();  
     if (productstest.Count > 0) 
     { 
      model.idproduct.Add(new SelectListItem() 
      { 
       Value = "0", 
       Text = _localizationService.GetResource("Common.All") 
      }); 
      foreach (var m in getAllProducts) 
       model.idproduct.Add(new SelectListItem() 
       { 
        Value = m.Id.ToString(), 
        **Text = m.Size.Distinct().ToString(),** 
        Selected = model.Pid == m.Id 

       }); 
     } 

    public virtual IList<Product> GetAllProducts(bool showHidden = false) 
    { 
     var query = from p in _productRepository.Table 
        orderby p.Name 
        where (showHidden || p.Published) && 
        !p.Deleted 
        select p; 
     var products = query.ToList(); 
     return products; 
    } 

문제는 내가 뚜렷한 크기로 선택 목록을 채우려 고합니다 : Text = m.Size.Distinct(). ToString(),하지만 인스턴스에 대한 중복을 보여줍니다. 100 개 제품의 크기가 33cm 인 경우 목록에 드롭 다운 목록이 33cm로 표시되고 100 번 표시됩니다. 한 번만 표시하려는 경우이 문제와 관련하여 도움이 될 수 있습니까?Linq를 사용하여 다른 필드를 표시 할 때의 문제

var getAllProducts = _productService.GetAllProducts().GroupBy(p => p.Size).Select(g => g.First()); 
: 그래서 트릭을 할 것 같은 당신의 getAllProducts 변수를 초기화하는 경우 아마도

답변

0

당신은 ... 각각 다른 크기의 하나 개의 제품을 보여주기 위해 노력하고있다