Как удалить элемент из списка, не используя команду "содержит"?
У меня есть такой код:
for (int i = listboxWork.Items.Count-1; i > -1; i--)
{
if (listboxWork.Items[i].Contains(tblSent))
{
listboxWork.Items.RemoveAt(i);
}
}
...который я вывел из здесь , но моя скрипучая старая версия .NET (или, может быть, это моя жалкая версия .NET (Compact Framework), в которой проблема) не содержит "содержит".
Я думаю, что мог бы заменить эту строку:
if (listboxWork.Items[i].ToString().IndexOf(tblSent) > -1)
...но я не слишком уверен, что это лучший способ сделать это. Есть ли более приемлемый способ?
1 ответ:
Items
это набор объектов, поэтому вам нужно преобразовать элемент, с которым вы работаете, в строку, прежде чем вы сможете использоватьContains
:if (listboxWork.Items[i].ToString().Contains(tblSent))
Edit: поскольку это CompactFramework (который я не смог распознать в посте изначально, правильное решение-использовать String.IndexOf, который уже был идентифицирован.
Это вполне приемлемый механизм, но если CF поддерживает его, я настоятельно рекомендую использовать сравнение без учета регистра, особенно если есть какой-либо пользователь входные данные, участвующие в оценке:
if (x.Items[0].ToString().ToLower().IndexOf(tblSent.ToLower()) != -1)