2013-07-15 2 views
0

3 열 (이름, 성, 나이)이있는 데이터 테이블이 있는데,이를 통해 찾고 이름과 성이 같은 행을 찾고 싶습니다. 첫 번째와 마지막 이름이 같은 행. 나이 칼럼에 관해서는 나는 모든 연령대를 하나의 셀에 넣고 '|' 또는 ';'.비슷한 데이터가있는 행을 병합하는 방법

존 # 미상 # 24

존 # 미상 # 35

후 :

전에

존 # 미상 # 24 | 35

+0

솔직히 말해서 나는 단서가 없습니다. 그러나 최선의 접근 방법인지 확실하지 않습니다. – Zack09

답변

2

당신은 LINQ를 사용할 수 있으며, System.Data.DataSetExtensions.dll 어셈블리의 확장은 DataRowExtensions과 같이 행을 그룹화하고 다음과 같이 원하는 값을 결합합니다.

 var dt=new DataTable(); 
     dt.Columns.Add("A", typeof (string)); 
     dt.Columns.Add("B", typeof (string)); 
     dt.Columns.Add("C", typeof (int)); 

     dt.Rows.Add("John", "Doe", 23); 
     dt.Rows.Add("John", "Doe", 24); 
     dt.Rows.Add("John", "Doe", 25); 

     var result = from row in dt.AsEnumerable() 
        group row by new {A=row.Field<string>("A"), B=row.Field<string>("B")} into grp 
        select new 
        { 
         CustomerName = grp.Key, 
         Items = String.Join(",",grp.Select(r=>r.Field<int>("C"))) 
        }; 
     foreach (var t in result) 
      Console.WriteLine(t.CustomerName + " " + t.Items); 

트릭은 당신이 요구하는 당신은 너무 많은 질문을 찾을 수 있습니다

카운트 이외의() 또는 합계()를 사용하여 값 열을 집계 방법 그룹 데이터에 다음 것을 실현하는 것입니다 DataTable 행을 그룹화하는 방법을 묻습니다. this one 더 복잡한 그룹을 만들기 위해 참조로 사용할 수 있습니다.

+0

감사합니다 @Panagiotis !!! – Zack09

관련 문제