listView.Items.Contains avec DateTime / String?
-
13-09-2019 - |
Question
Comment puis-je vérifier si un listView contient un DateTime ou une chaîne?
J'ai essayé
if (!listView1.Items.Contains(SetAlarm.Value))
Mais il ne peut pas convertir System.DateTime
à System.Windows.Forms.ListViewItem
.
La solution
listView1.Items.Contains(new ListItem(DateTime.Now))
ne fonctionnera pas. Contains
ne fonctionne que si nous passons un élément réellement dans les collections de ListView.Items
. Je pense que vous devrez utiliser une boucle: (
foreach (ListViewItem s in listView1.Items)
{
if (s.Text != SetAlarm.Value.ToString()) continue;
MsgBox.Show("Found: " + SetAlarm.Value.ToString());
return;
}
Autres conseils
bool isMatch = false;
int matchIndex = -1;
DateTime resultDate = = new DateTime();
foreach(ListViewItem lvItem in listView1.Items)
{
if(DateTime.TryParse(lvItem.Text, out resultDate ))
{
isMatch = true;
matchIndex = lvItem.Index;
break;
}
}
if(isMatch) Console.WriteLine("match at index : " + matchIndex.ToString() + " = " + resultDate.ToString());
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow