2012-10-01 2 views
1

몇 가지 문제가 있으며 무엇을해야할지 모르겠다. 누군가 나를 도와 줄 수 있습니까? 결과가 마이크를 좋아하지만 LINQ로 그룹화 할linq을 사용하여 결과 그룹화

ID Name Produkt Comment aa bb 
1 Mike AA   YY  x 
1 Mike AA   YY    x 

한 줄에

1 Mike AA   YY  x  x 

내 코드 : 는 내가 같은 테이블이

var results = from t1 in table.AsEnumerable() 
         join tb2 in table2.AsEnumerable() 
         on t1.Field<string>("Name") equals tb2.Field<string>("Name") into prodGroup 
         from table4 in prodGroup.DefaultIfEmpty() 

         select new 
         { 
          ID = t1.Field<Int32?>("ID"), 
          Name = t1.Field<String>("Name"), 
          Produkt = t1.Field<String>("Produkt"), 
          Attribute = t1.Field<String>("Attribute"), 
          Comment = table4 != null ? table4.Field<String>("Comment") : null, 

         }; 
foreach (var r in results) 
{ 
    var productIndex = result.Columns.IndexOf(r.Attribute); 
    var vals = new List<object>() { r.ID, r.Name, r.Produkt, r.Comment }; 
    for (int i = 4; i < result.Columns.Count; i++) 
    { 
     if (i == productIndex) 
     { 
      vals.Add(true); 

     } 
     else 
     { 
      vals.Add(false); 
     } 
    } 
    result.LoadDataRow(vals.ToArray(), true); 
} 
+0

왜해야합니까 당신은'Merge' 메쏘드를 사용합니까? –

답변

1

시도 이 :

var result = from t1 in table.AsEnumerable() 
       group t1 by t1.Name into t1group 
       select new 
       { 
        Name = t1group.FirstOrDefault().Name 
        ,ID = t1group.FirstOrDefault().ID 
        ,Product = t1group.FirstOrDefault().Product 
        ,Comment = t1group.FirstOrDefault().Comment 
        ,aa = (t1group.Select(x => x.aa??"" + x.bb??"")).Aggregate((a, b) => (a + ", " + b)) 
       };