检查每条记录的索引后,将一个 IEnumerable 的内容复制到另一个

Copy the content one IEnumerable to another after checking the index of each record

我想在检查记录的索引后将记录从一个 IEnumerable 复制到另一个。 pvm 由具有 n 列数和 m 行数的记录集组成。在 view_filter 方法中,我正在检查索引。如果条件成立,我想将记录复制到 _invMstrSrchResults。索引一一检查。

        public PagingViewModel(IEnumerable<InventoryMasterItem> pvm)
        {            
            ViewList = new CollectionViewSource();
            ViewList.Source = pvm;
            ViewList.Filter += new FilterEventHandler(view_Filter);

            CurrentPageIndex = 0;
            itemcount = 100;
            CalculateTotalPages();            
        }

        private IEnumerable<InventoryMasterItem> _invMstrSrchResults;

        void view_Filter(object sender, FilterEventArgs e)
        {
            int index = ((InventoryMasterItem)e.Item).indexNo - 1;
            if (index >= itemPerPage * CurrentPageIndex && index < itemPerPage * (CurrentPageIndex + 1))
            {
                 // I want to copy record from pvm to _invMstrSrchResults here
                 e.Accepted = true;               
            }
            else
            {
                e.Accepted = false;
            }
        }

FilterEventArgs 应该持有一个 InventoryMasterItem 对象,您可以在 view_Filter 中检索该对象。此外,您可能需要临时创建一个不同的集合,List<InventoryMasterItem> 然后将其转换为 IEnumerable<InventoryMasterItem>:

InventoryMasterItem item = e.Item as InventoryMasterItem;
var list = new List<InventoryMasterItem>();
list.Add(item);
_invMstrSrchResults = list.AsEnumerable();