// ReSharper disable once IdentifierTypo public string[] Select(string[] items, string[]?previews, string[]?descs, string title, bool many) { List <int> result; var previewPaths = new List <string>(); if (previews != null) { previewPaths = previews .Select(preview => _omod.GetDataFile(preview)) .Select(file => file.GetFileInFolder(_srd.DataFolder)) .ToList(); } if (_settings.UseBitmapOverloads) { var bitmapPreviews = new List <Bitmap>(); if (previews != null) { bitmapPreviews = previewPaths .Select(x => new Bitmap(x)) .ToList(); } result = ExternalScriptFunctions .Select(items, title, many, bitmapPreviews, descs ?? Array.Empty <string>()) .ToList(); foreach (var bitmap in bitmapPreviews) { bitmap.Dispose(); } } else { result = ExternalScriptFunctions .Select(items, title, many, previewPaths, descs ?? Array.Empty <string>()) .ToList(); } return(result .Select(x => items[x]) .Select(x => { //removing the pipe from the item if present if (x[0] == '|') { x = x[1..]; }