I got several properties that are almost exactly the same, I'm trying to merge them down to just one property, but I'm not doing it right. Here are the over-redundant properties
here is how I am trying to slim it down... but Im getting a ; expected error.. Am i missing something simple?? I can't see itCode:public string[] GetShieldBucklerNamesList { get { string[] shields; ArrayList ShieldsToAdd = new ArrayList(); foreach (KeyValuePair<string, Tuple<ShieldType, int, int>> shield in InvShields) { if (shield.Value.First == ShieldType.Buckler) { string shieldName = shield.Key; ShieldsToAdd.Add(shieldName); } } shields = ShieldsToAdd.ToArray(typeof(string)) as string[]; return shields; } } public string[] GetShieldHeaterNamesList { get { string[] shields; ArrayList ShieldsToAdd = new ArrayList(); foreach (KeyValuePair<string, Tuple<ShieldType, int, int>> shield in InvShields) { if (shield.Value.First == ShieldType.Heater) { string shieldName = shield.Key; ShieldsToAdd.Add(shieldName); } } shields = ShieldsToAdd.ToArray(typeof(string)) as string[]; return shields; } } public string[] GetShieldKiteNamesList { get { string[] shields; ArrayList ShieldsToAdd = new ArrayList(); foreach (KeyValuePair<string, Tuple<ShieldType, int, int>> shield in InvShields) { if (shield.Value.First == ShieldType.Kite) { string shieldName = shield.Key; ShieldsToAdd.Add(shieldName); } } shields = ShieldsToAdd.ToArray(typeof(string)) as string[]; return shields; } } public string[] GetShieldRoundNamesList { get { string[] shields; ArrayList ShieldsToAdd = new ArrayList(); foreach (KeyValuePair<string, Tuple<ShieldType, int, int>> shield in InvShields) { if (shield.Value.First == ShieldType.Round) { string shieldName = shield.Key; ShieldsToAdd.Add(shieldName); } } shields = ShieldsToAdd.ToArray(typeof(string)) as string[]; return shields; } }
Code:public string[] GetShieldByTypeNamesList(ShieldType shieldType) { get { string[] shields; ArrayList ShieldsToAdd = new ArrayList(); foreach (KeyValuePair<string, Tuple<ShieldType, int, int>> shield in InvShields) { if (shield.Value.First == shieldType) { string shieldName = shield.Key; ShieldsToAdd.Add(shieldName); } } shields = ShieldsToAdd.ToArray(typeof(string)) as string[]; return shields; } }




Reply With Quote