listView.Items.Contains con DateTime / String?
-
13-09-2019 - |
Domanda
Come posso controllare se un listView contiene un datetime o stringa?
Ho provato
if (!listView1.Items.Contains(SetAlarm.Value))
Ma non è possibile convertire System.DateTime
a System.Windows.Forms.ListViewItem
.
Soluzione
listView1.Items.Contains(new ListItem(DateTime.Now))
non funzionerà. Contains
funziona solo se stiamo passando un elemento in realtà nelle collezioni ListView.Items
. Penso che si dovrà utilizzare un ciclo for: (
foreach (ListViewItem s in listView1.Items)
{
if (s.Text != SetAlarm.Value.ToString()) continue;
MsgBox.Show("Found: " + SetAlarm.Value.ToString());
return;
}
Altri suggerimenti
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());
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow