Самый простой способ - немного изменить свое выражение. Сначала конвертируйте в List<int>
, затем добавьте элемент и затем преобразуйте его в массив.
List<int> items = activeList.Split(',').Select(n => Convert.ToInt32(n)).ToList();
int itemToAdd = ddlDisabledTypes.SelectedValue.ToInt(0);
items.Add(itemToAdd);
// If you want to see it as an actual array you can still use ToArray
int[] itemsAsArray = items.ToArray();
Основываясь на последней строке, хотя кажется, что вы хотите, чтобы получить всю информацию обратно в качестве значения string
. Если да, то вы можете сделать следующее
var builder = new StringBuilder();
foreach (var item in items) {
if (builder.Length != 0) {
builder.Append(",");
}
builder.Append(item);
}
string finalList = builder.ToString();
Если общая цель, хотя это просто добавить еще один элемент в конце строки, то это гораздо более эффективно, чтобы сделать это непосредственно вместо преобразования в int
коллекции и затем вернитесь к строке.
int itemToAdd = ddlDisabledTypes.SelectedValue.ToInt(0);
string finalList = String.IsNullOrEmpty(activeList)
? itemToAdd.ToString()
: String.Format("{0},{1}", activeList, itemToAdd);
почему вы не просто сделать 'finalList = activeList.Append ("" + ddlDisabledTypes.SelectedValue)'? –
'items.Add (itemToAdd);' ??? – Bridge
items.Add (itemToAdd); Не работает: «Система.Array 'не содержит определения для «Добавить», и не может быть найден метод расширения «Добавить», принимающий первый аргумент типа «System.Array» (вам не хватает директивы using или ссылки на сборку?) – Jared