C# nothing special, code explain itself
Code\ncsharp []\npublic class Solution {\n    public string DigitSum(string s, int k) {\n        var sb = new StringBuilder();\n        while(s.Length > k){\n  
# Code\n```csharp []\npublic class Solution {\n    public string DigitSum(string s, int k) {\n        var sb = new StringBuilder();\n        while(s.Length > k){\n            var lists = SplitStringByLength(s, k);\n            foreach(var str in lists){\n                var sum = str.Select(c=>c-\'0\').Sum();\n                sb.Append(sum.ToString());\n            }\n            s = sb.ToString();\n            sb.Clear();\n        }\n        return s;\n    }\n\n    public IEnumerable<string> SplitStringByLength(string str, int length)\n    {\n        for (int i = 0; i < str.Length; i += length)\n        {\n            yield return str.Substring(i, Math.Min(length, str.Length - i));\n        }\n    }\n}\n```
['C#']