2

Windows.Foundation.Collections有一个称为PropertySet集合根据MSDN具有lookup方法,它返回:UWP:属性集查找抛出异常

的值,如果具有指定键的项是否存在; 否则为空

当我尝试以下方法,我得到一个(意外)例外:

try 
{ 
    auto propertySet = ref new Windows::Foundation::Collections::PropertySet(); 
    auto something = propertySet->Lookup("nothing"); 
    if (something != nullptr) 
    { 
     // Something was found :| 
    } 
    else 
    { 
     // Found nothing :) 
    } 
}catch(Platform::Exception^ e) 
{ 
    //Exception: e->Message 
} 

e->Message是:

的操作试图在有效范围之外访问数据

我无法在MSDN上找到关于此问题的任何内容。

我在这里做错了什么,或者这是Microsoft bug \错误的文档?

编辑:

1-我使用的窗口10与SDK版本10.0.10240.0

2-我使用C++/CX,而不是C#(如果这是不明确的)

+0

可能是C#语言不支持查找?使用支持 –

回答

4

文档不正确。我会要求它是固定的。如果密钥不存在,Lookup将产生一个Platform::OutOfBoundsException(内部:E_BOUNDS)。要检查是否存在密钥,请使用HasKey方法。

+0

的[TryGetValue](https://msdn.microsoft.com/en-us/library/windows/apps/windows.foundation.collections.propertyset.trygetvalue.aspx)谢谢。因为我不确定它是否还没有标记为答案。 – ZivS