c# ListViewItem 查出相同项将日期较老的删掉
要查找相同的项并删除较旧的日期,可以使用以下步骤:
- 首先,创建一个 Dictionary<string, DateTime> 对象,用于存储每个项的键(如文本)和日期。
- 遍历 ListViewItem 集合,将每个项的文本作为键,日期作为值添加到字典中。
- 遍历字典中的每个键值对,查找具有相同键的项。
- 对于具有相同键的项,比较日期并删除较旧的项。
这是一个示例代码:
// 创建一个字典来存储项的键和日期
Dictionary<string, DateTime> items = new Dictionary<string, DateTime>();
// 遍历 ListViewItem 集合
foreach (ListViewItem item in listView1.Items)
{
string key = item.Text; // 使用文本作为键
DateTime date = DateTime.Parse(item.SubItems[1].Text); // 使用第二列的文本作为日期
// 将键和日期添加到字典中
items.Add(key, date);
}
// 遍历字典中的每个键值对
foreach (var kvp in items)
{
string key = kvp.Key;
DateTime date = kvp.Value;
// 查找具有相同键的项
var sameItems = listView1.Items.Cast<ListViewItem>()
.Where(i => i.Text == key && DateTime.Parse(i.SubItems[1].Text) != date)
.ToList();
// 删除较旧的项
foreach (var item in sameItems)
{
if (DateTime.Parse(item.SubItems[1].Text) < date)
{
listView1.Items.Remove(item);
}
}
}
请注意,这个示例假设你有一个名为 listView1 的 ListView 控件,并且日期存储在每个项的第二列。你可能需要根据自己的代码进行适当的调整
原文地址: https://www.cveoy.top/t/topic/ixAm 著作权归作者所有。请勿转载和采集!