Convert UnityScript Array to List for C# conversion

Does anyone know how to convert the below arrays into a generic list?

I’m banging my head against a wall I’ve been trying to get this working for 8 hours.

var upgradesApplied : boolean[];
var upgrades : Upgrade[];
private var storeUpgrades : Upgrade[];

function Awake() {
    upgrades = Array(GetComponentsInChildren(Upgrade)).ToBuiltin(Upgrade) as Upgrade[];
    var tempArr = new Array();
    upgradesApplied = new boolean[upgrades.length];
    for(var i = 0; i < upgrades.length ; i ++) {
        upgradesApplied = upgrades.applied;
        if(upgrades.showInStore){
            tempArr.Push(upgrades);
        }
    }
    storeUpgrades = tempArr.ToBuiltin(Upgrade) as Upgrade[];
}

I can’t see how that would compile at all; stuff like “upgradesApplied = upgrades.applied” is a syntax error, since upgrades is an Upgrade[ ] array, and arrays don’t have an “applied” property. Here’s my best guess based on what seems more logical:

var upgradesApplied : boolean[];
var upgrades : Upgrade[];
private var storeUpgrades : List.<Upgrade>;

function Awake() {
    upgrades = GetComponentsInChildren.<Upgrade>();
    storeUpgrades = new List.<Upgrade>();
    upgradesApplied = new boolean[upgrades.Length];
    for (var i = 0; i < upgrades.Length; i++) {
        upgradesApplied[i] = upgrades[i].applied;
        if (upgrades[i].showInStore) {
            storeUpgrades.Add (upgrades[i]);
        }
    }
}

–Eric

1 Like

Thanks Eric5h5

The below worked for me, you were quite spot on, the guy from cShapatron gave me a hand its his tool i’m trying to use to convert my project to c#

var upgradesApplied : boolean[];
var upgrades : Upgrade[];
private var storeUpgrades : Upgrade[];
function Awake() {
    upgrades = GetComponentsInChildren.<Upgrade>();
    var tempArr = new List.<Upgrade>();  
    upgradesApplied = new boolean[upgrades.length];
    for(var i = 0; i < upgrades.length ; i ++) {
     upgradesApplied[ i ] = upgrades[ i ].applied; 
        if(upgrades[ i ].showInStore){
            tempArr.Add(upgrades[ i ]);  
        }
    }
    storeUpgrades = tempArr.ToArray();
}