0

Keynotfound 例外

public int getLastUniqueID()
{
    int lastID = 0;
    IsolatedStorageSettings uc = IsolatedStorageSettings.ApplicationSettings;

    List<sMedication> medicationList = (List<sMedication>)uc["medicationList"];

    foreach (sMedication temp in medicationList) {
        lastID = temp.UniqueID;
    }

    return lastID;
}

次の行で発生しています。

List<sMedication> medicationList = (List<sMedication>)uc["medicationList"];
4

2 に答える 2

2

エラーは、値にアクセスする前にキーがディクショナリに見つからなかったことを示しているため、キーが存在するかどうかを確認します

if(uc.Contains("medicationList"))
{
   // your code here
}
于 2012-06-24T04:35:53.180 に答える
1

キー「medicationList」が取得されたアプリケーション設定にない場合、目撃したように例外がスローされるため、このアプローチでは問題が発生します。

次のことを試してください。

uc.TryGetValue<List<sMedication>>("medicationList", out medicationList)
if (medicationList != null)
{
   foreach(sMedication temp in medicationList)
   {
       lastID = temp.UniqueID;
       return lastID;
   }
}
else
{
   // handle the key not being there
}
于 2012-06-24T04:37:08.180 に答える