簡體   English   中英

如何檢查ToolStripMenuItem DropDownItems中是否已存在項目?

[英]How do I check if items already exist in a ToolStripMenuItem DropDownItems?

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

我想檢查項目是否已經存在於recentFilesToolStripMenuItem.DropDownItems

如果不存在,則添加,但如果不存在,則不添加。

基本上,您有兩個集合: itemsrecentFilesToolStripMenuItem.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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM