Вот фрагмент кода для вашей новой проблемы mikee:
Вам нужно перебрать элементы списка, найти совпадение и заменить обнаруженные совпадения:
string search = "A";
string replace = "B";
for(int i = 0; i < lb1.Items.Count; i++)
{
if(lb1.Items[i].ToString().EndsWith(search))
{
string item = lb1.Items[i].ToString().Replace(search, replace);
lb1.Items[i] = item;
}
}
Редактировать
Обратите внимание, что предыдущий фрагмент изменит все A символов в строке с B не только последним,Так что если у вас есть элемент списка, скажем JONATHAN, A , предыдущий код изменит его на JONBTHBN, B . Чтобы избежать этого, вы можете сделать:
Решение 1:
for (int i = 0; i < lb1.Items.Count; i++)
{
if (lb1.Items[i].ToString().EndsWith(search))
{
int indx = lb1.Items[i].ToString().LastIndexOf(search);
string item = lb1.Items[i].ToString().Substring(0, indx) + replace;
lb1.Items[i] = item;
}
}
Решение 2:
Если все вашиэлементы списка - это строки, разделенные запятыми, как на изображении выше, тогда вы можете сделать следующее:
for (int i = 0; i < lb1.Items.Count; i++)
{
if (lb1.Items[i].ToString().EndsWith(search))
{
var arr = lb1.Items[i].ToString().Split(',');
arr[arr.Length - 1] = replace;
lb1.Items[i] = string.Join(", ", arr);
}
}
Приносим извинения за неудобства.
Удачи.