Уменьши код, сохранив функционал
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Albion_Helper
{
    public partial class BuyMenu : Form
    {
        private readonly ItemsProcessing itemsProcessing;
        public BuyMenu()
        {
            InitializeComponent();
            this.FormClosed += (sender, e) => Application.Exit();

            BrowserList.SmallImageList = ImageList;
            InventoryList.SmallImageList = ImageList;
            itemsProcessing = new ItemsProcessing(BrowserList, InventoryList, ImageList);
            itemsProcessing.LoadImagesToImageList();
            List<Item> items = itemsProcessing.GetSortedItems();
            itemsProcessing.PopulateBrowseList();
            itemsProcessing.InitializeListViewMouseHandlers();

        }


        private void AddToInventory_Click(object sender, EventArgs e)
        {
            if (BrowserList.SelectedItems.Count > 0)
            {
                foreach (ListViewItem item in BrowserList.SelectedItems)
                {
                    // Получаем объект Item из Tag выбранного элемента.
                    Item selectedItem = item.Tag as Item;
                    if (selectedItem != null)
                    {
                        // Создаём новый элемент с правильными колонками для InventoryList.
                        ListViewItem newItem = itemsProcessing.CreateInventoryListViewItem(selectedItem);
                        InventoryList.Items.Add(newItem);
                    }

                    // Удаляем элемент из списка BrowserList.
                    BrowserList.Items.Remove(item);
                }
            }
        }

        private void RemoveFromInventory_Click(object sender, EventArgs e)
        {
            if (InventoryList.SelectedItems.Count > 0)
            {
                // Создаём список элементов, чтобы не изменять коллекцию во время просмотра
                List<ListViewItem> selectedItems = new List<ListViewItem>(InventoryList.SelectedItems.Cast<ListViewItem>());

                foreach (ListViewItem inventoryItem in selectedItems)
                {
                    // Получаем объект Item из Tag выделенного элемента
                    Item item = inventoryItem.Tag as Item;
                    if (item != null)
                    {
                        // Создаём новый элемент для BrowserList
                        ListViewItem browserItem = itemsProcessing.CreateBrowserListViewItem(item);
                        BrowserList.Items.Add(browserItem);
                    }

                    InventoryList.Items.Remove(inventoryItem);
                }
            }
        }

        private void InventorySearch_TextChanged(object sender, EventArgs e)
        {
            string searchText = InventorySearch.Text.ToLower();
            InventoryList.Items.Clear(); // Очищаем текущие отображаемые элементы

            // Отфильтровываем элементы по запросу и добавляем их в InventoryList
            var filteredItems = itemsProcessing.GetSortedItems()
                .Where(item => item.GetFullEnglishName().ToLower().Contains(searchText)
                               && InventoryList.Items.Cast<ListViewItem>().Any(lvi => lvi.Tag == item))
                .Select(item => itemsProcessing.CreateInventoryListViewItem(item));

            foreach (var listViewItem in filteredItems)
            {
                InventoryList.Items.Add(listViewItem);
            }
        }

        private void BrowserSearch_TextChanged(object sender, EventArgs e)
        {
            string searchText = BrowserSearch.Text.ToLower();
            BrowserList.Items.Clear(); // Очищаем текущие отображаемые элементы

            // Отфильтровываем элементы по запросу и добавляем их в BrowserList
            var filteredItems = itemsProcessing.GetSortedItems()
                .Where(item => item.GetFullEnglishName().ToLower().Contains(searchText)
                               && !InventoryList.Items.Cast<ListViewItem>().Any(lvi => lvi.Tag == item))
                .Select(item => itemsProcessing.CreateBrowserListViewItem(item));

            foreach (var listViewItem in filteredItems)
            {
                BrowserList.Items.Add(listViewItem);
            }
        }

    }
}