Может ли кто-нибудь помочь мне выяснить, как я могу упростить этот код, не используя ArrayList
?Создайте и используйте общий список?
List<Pair> material = new List<Pair>();
List<string> list = new List<string>();
string tempStr;
int integer = -1;
foreach (string s in ((string)Value).Split(new char[1] { ',' }))
{
if (int.TryParse(s, out integer))
{
tempStr = NameValue.AllKeys[integer];
if (someCondition == true)
{
material.Add(new Pair(tempStr, integer));
}
else
{
list.Add(tempStr);
}
}
}
if(someCondition == true)
{
return material.ExtensionMethodForLists();
}
else
{
return list.ExtensionMethodForLists();
}
Когда я пытался что-то подобное (ниже) я получаю сообщение об ошибке для инициализации не implicityly типизированного переменной.
var list;
if(someCondition == true)
{
list = new List<Pair>();
}
else
{
list = new List<string>();
}
список не может быть двух разных типов. – alternative
@mathepic - Я не был уверен, могу ли я использовать дженерики здесь, чтобы помочь – Brett
Вам нужны оба типа для наследования из общего интерфейса/типа. Оберните пару и строку в типы с общим интерфейсом/базовым типом. – Maxim