通过IEnumerable枚举共同对象集合

本文关键字:对象 集合 IEnumerable 枚举 通过 | 更新日期: 2023-09-27 18:08:01

我想迭代一个Outlook。选择(它是一个实现IEnumerable的集合)或Outlook。Items Collection(它也间接实现了IEnumerable)通过一个方法。方法参数可以是其中之一

我不知道如何正确地实现方法的参数。我已经说到这里了:

Outlook.Selection items1 = activeExplorer.Selection;
Outlook.Items items2 = currentFolder.Items;
// How can i input these as parameter into the method below?
// The Method to iterate looks like this so far:
        private void MethodX<T>(IEnumerable<T> items)
        {
            foreach (var item in items)
            {
                //...
            }
        }

我不知道这是否可能,因为使用COM-Objects…也许还有别的办法?

通过IEnumerable枚举共同对象集合

作为对上面注释的回复-使用"for"循环,请尝试以下操作:

Outlook.Items items2 = currentFolder.Items;
for (int i = 1; i <= items2.Count; i++)
{
  object item = items2[i];
  Outlook.MailItem mailItem = (MailItem)item;
  if (mailItem != null) //you can have objects other than MailItem
  {
    //use mailItem here
    Marshal.ReleaseComObject(mailItem );
  }
  Marshal.ReleaseComObject(item);  
}