Я немного подозрительно отношусь к вашему выбору на основе индекса - я не говорю, что это неправильно, но я думаю, что могут быть и лучшие способы. Я хотел бы использовать:
string[] area = nv[s].Substring(0, (nv[s].Length - 1)).Split(';');
foreach (ListItem item in AreasLb.Items)
{
foreach (var s1 in area)
{
if (s1 == item.Value)
{
item.Selected = true;
}
}
}
Или вместо того, чтобы перебирать набор ListItems, вы можете использовать метод Items.FindByText
, который вырезает foreach
и может дать вам некоторое увеличение производительности :-):
ListItem foundItem = null;
string[] area = nv[s].Substring(0, (nv[s].Length - 1)).Split(';');
foreach (var s1 in area)
{
// Search for a ListItem with the text from the array
foundItem = AreasLb.Items.FindByText(s1);
if (foundItem == null)
{
// We didn't find a matching item
}
else
{
// We found a matching item so select it
foundItem.Selected = true;
}
foundItem = null;
}