Esempio n. 1
0
        public void Filter(string txt)
        {
            if (_filtered.Count == 0)
            {
                CollectionExtensions.AddRange(_filtered, _clipboardItems);
            }

            if (string.IsNullOrWhiteSpace(txt) && _filtered.Count > 0)
            {
                _clipboardItems.Clear();
                CollectionExtensions.AddRange(_clipboardItems, _filtered);
                _filtered.Clear();
                return;
            }

            List <ClipboardItem> items = (from clipboardItem in _clipboardItems
                                          let isTextMatched = clipboardItem.Data.Text != null && !clipboardItem.Data.Text.Contains(txt, StringComparison.InvariantCultureIgnoreCase)
                                                              let isImage = clipboardItem.Data.ClipboardType == ClipboardType.Image
                                                                            where isTextMatched || isImage
                                                                            select clipboardItem).ToList();

            _clipboardItems.RemoveRange(items);
            OnCountChanged(_clipboardItems.Count);
        }