我如何检查项目是否已经存在于ToolStripMenuItem下拉项

本文关键字:存在 ToolStripMenuItem 是否 何检查 检查 项目 | 更新日期: 2023-09-27 17:53:08

items = File
    .ReadLines(RecentFiles)
    .Select(line => new ToolStripMenuItem()
    {
        Text = line
    })
    .ToArray();
recentFilesToolStripMenuItem.DropDownItems.AddRange(items);

我想检查项目是否已经存在于recentFilesToolStripMenuItem.DropDownItems

我如何检查项目是否已经存在于ToolStripMenuItem下拉项

你基本上有两个集合:items &recentFilesToolStripMenuItem.DropDownItems

使用Linq,您应该能够执行

Except() Where(),只添加两个集合之间的差异。

未测试

recentFilesToolStripMenuItem.DropDownItems.AddRange (items.Except (recentFilesToolStripMenuItem.DropDownItems));

这是测试

recentFilesToolStrip.DropDownItems.AddRange(
    items
    .Where(i => !recentFilesToolStrip.DropDownItems
                 .OfType<ToolStripMenuItem>()
                 .Select(t => t.Text).Contains(i.Text)
          ).ToArray()
);

SLaks注释指的是做以下事情:

recentFilesToolStripMenuItems.DropDownItems.Clear();
recentFilesToolStripMenuItems.DropDownItems.AddRange(items);