Tìm các row có giá trị giống nhau và cộng lại trong DataTable

Xin chào mọi người. Mọi người cho e hỏi một chút.
Em đang làm 1 task đọc dữ liệu từ file excel. Em dùng ClosedXML.Excel và đã đọc được dữ liệu lên, lưu vào DataTable. Dữ liệu của e thì có 2 cột: MH và SL. E muốn tìm các dòng nào có MH giống nhau thì bên SL sẽ cộng dồn lại.
%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3

Em đã thử đoạn code này nhưng không được:

DataTable result = new DataTable();
result = result.AsEnumerable().GroupBy(r =r.Field<string>("MH"))
                                .Select(g =>
                                {
                                    var row = result.NewRow();
                                    row.ItemArray = new object[]
                            {
                                g.Key, 
                                g.Sum(r =r.Field<int>("SL"))
                            };
                                    return row;
                                }).CopyToDataTable();

E nghĩ là do cột SL của e đang là string nên không cộng được.
Mọi người xem giúp e được không ạ. Em xin cảm ơn.

Bạn xem thử solution này thử đi

4 Likes

Cái này cột cộng dồn là kiểu int nên không có vấn đề gì cả. Nhưng của cột của e hiện tại đang là string. Nên k cộng được

thì bạn có thể cast về kiểu int được mà

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?