我想通过一个方法迭代一个Outlook.Selection(它是一个实现IEnumerable的集合)或一个Outlook.Items集合(它也间接地实现了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,我不知道这是否可行... 也许有另一种方式?!
答案 0 :(得分:-1)
在回复上述评论时 - 要使用“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);
}