VB.NET循环集合和获取值
我使用EWS循环浏览一些附件,但是如果我遇到一封包含多个附件的电子邮件,我只想下载一个特定的附件 为此,我想我可以测试AttachmentCollection是否包含特定的附件名称,然后只下载该附件 如何循环AttachmentCollection并测试附件的每个名称VB.NET循环集合和获取值,vb.net,exchangewebservices,Vb.net,Exchangewebservices,我使用EWS循环浏览一些附件,但是如果我遇到一封包含多个附件的电子邮件,我只想下载一个特定的附件 为此,我想我可以测试AttachmentCollection是否包含特定的附件名称,然后只下载该附件 如何循环AttachmentCollection并测试附件的每个名称 我无法执行AttachmentCollection。包含,因为它包含附件的集合,而不是附件本身的名称。我不完全熟悉所涉及的类型,我相信AttachmentCollection实现了IEnumerable(of t),这意味着您可以
我无法执行AttachmentCollection。包含,因为它包含附件的集合,而不是附件本身的名称。我不完全熟悉所涉及的类型,我相信
AttachmentCollection
实现了IEnumerable(of t)
,这意味着您可以在其上使用一些LINQ。您可以使用以下方法测试并获取附件:
Dim attachment=myAttachmentCollection.FirstOrDefault(函数(a)a.Name=someValue)
如果附件不是什么,那么
'找到了匹配项,附件引用了它。
如果结束
不确定项目类型,因此您可能没有名称
属性,但原则相同
编辑:
对于记录,Contains
的等价物将是Any
:
如果myAttachmentCollection.Any(函数(a)a.Name=someValue),则
如果您只想知道匹配项是否存在,那么这很好。但是,如果您也想获得匹配项,那么您不会首先使用
Any
,因为这样您将枚举两次FirstOrDefault
与Any
几乎相同,只是如果找到匹配项,则返回匹配项;如果未找到匹配项,则返回Nothing
,而不是如果找到匹配项,则返回True
;如果未找到匹配项,则返回False
。可以使用.Count
属性并在其中的项类似于数组,例如,myCollection[i]
。它还有一个迭代器,因此您还应该能够执行foreach
循环。