I tried to convert the below Java code into C#. The Java code works fine but C# code is not returning the powersets. Am I missing something?
Java Code
public static void main(String[] args) {
    List<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    List<List<Integer>> subsets = new ArrayList<>();
    System.out.println(generateSubsets(
      0, 
      list.stream().mapToInt(i -> i).toArray(), 
      new ArrayList<Integer>(), 
      subsets));
}
static List<List<Integer>> generateSubsets(
    int index, 
    int[] nums, 
    List<Integer> current, 
    List<List<Integer>> subsets){
    
    subsets.add(new ArrayList<>(current));
    
    for(int i = index; i < nums.length; i++){
        current.add(nums[i]);
        generateSubsets(i + 1, nums,current, subsets);
        current.remove(current.size() - 1);
    }
    return subsets;
}
C# Code
static List<List<Integer>> generateSubsets(
    int index, 
    int[] nums, 
    List<Integer> current, 
    List<List<Integer>> subsets) {
    
    subsets.add(new List(current));
    for (int i = index; (i < nums.length); i++) {
        current.add(nums[i]);
        generateSubsets((i + 1), nums, current, subsets);
        current.remove((current.size() - 1));
    }
    
    return subsets;
}
Expected Output
[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]
 
    