Accepted C# solution: Easy to understand
Ported to C# from Java solution\n\n\npublic class Solution {\n    public int[][] Insert(int[][] intervals, int[] newInterval)\n    {\n        List<int[]> result
Ported to C# from [Java solution](https://leetcode.com/problems/insert-interval/discuss/463417/My-concise-Java-solution-(single-pass-O(n)-3-steps))\n\n```\npublic class Solution {\n    public int[][] Insert(int[][] intervals, int[] newInterval)\n    {\n        List<int[]> result = new List<int[]>();\n        int i = 0;\n\n        // Step 1 - add all intervals ending before newInterval starts\n        while (i < intervals.Length && intervals[i][1] < newInterval[0])\n            result.Add(intervals[i++]);\n\n        // Step 2 - update the newInterval by merging with all overlapping intervals\n        while (i < intervals.Length && intervals[i][0] <= newInterval[1])\n        {\n            newInterval[0] = Math.Min(newInterval[0], intervals[i][0]);\n            newInterval[1] = Math.Max(newInterval[1], intervals[i][1]);\n            i++;\n        }\n        result.Add(newInterval); // add updated interval\n\n        // Step 3 - add remaining intervals\n        while (i < intervals.Length)\n            result.Add(intervals[i++]);\n        \n        return result.ToArray();\n    }    \n}\n```
[]