こんにちは
上記はLINQによるものなので、慣れないうちは難しいと思います。
類似の投稿として以下もありますので、アルゴリズムを把握したい、かつLINQは厳しいようでしたら
Dictionaryの例を参考にいただくと良いかもしれません。
ちなみに
①日数の集計方法は、社員番号を"GroupBy"でグルーピングすることで
同じ社員番号の行を"Enumerable"として合算する。
社員番号でグルーピングして、キーを社員番号、それに紐づく要素(この場合DataRow)をシーケンスとして保持します。
②Function部分のアルファベットは列名を定義するための機能であり、
どんな文字で代入しても問題はないか(画像だとr=社員番号、g=社員名?)。
rやgは匿名変数です、変数名はどのようなものでも大丈夫ですが、一般的に型を類推しやすいものを
つけます。上記の場合、rはDataRow, gは System.Linq.IGrouping<TKey,TElement>
になります。
③社員番号でグルーピングしたものを、Parseとして整数表示させSumとして
合算させる
元の型が不明なので、一旦文字列かしてものを、Int32.Parseで整数化して、これを合算しています。
④合算したものを、データテーブルにコピー