Kişi verileri ile Exchange Web Hizmetleri Yönetilen API ile çalışıyorum. İşlevsel , ancak ideal değil aşağıdaki kodu var :
foreach (Contact c in contactList)
{
string openItemUrl = "https://" + service.Url.Host + "/owa/" + c.WebClientReadFormQueryString;
row = table.NewRow();
row["FileAs"] = c.FileAs;
row["GivenName"] = c.GivenName;
row["Surname"] = c.Surname;
row["CompanyName"] = c.CompanyName;
row["Link"] = openItemUrl;
//home address
try { row["HomeStreet"] = c.PhysicalAddresses[PhysicalAddressKey.Home].Street.ToString(); }
catch (Exception e) { }
try { row["HomeCity"] = c.PhysicalAddresses[PhysicalAddressKey.Home].City.ToString(); }
catch (Exception e) { }
try { row["HomeState"] = c.PhysicalAddresses[PhysicalAddressKey.Home].State.ToString(); }
catch (Exception e) { }
try { row["HomeZip"] = c.PhysicalAddresses[PhysicalAddressKey.Home].PostalCode.ToString(); }
catch (Exception e) { }
try { row["HomeCountry"] = c.PhysicalAddresses[PhysicalAddressKey.Home].CountryOrRegion.ToString(); }
catch (Exception e) { }
//and so on for all kinds of other contact-related fields...
}
Dediğim gibi, bu kod çalışır . Şimdi mümkünse biraz daha az emmek istiyorum .
Erişmeye çalışmadan önce sözlükte anahtarın varlığını kontrol etmeme izin veren herhangi bir yöntem bulamıyorum ve (ile .ToString()
) okumaya çalışırsam ve mevcut değilse bir istisna atılır:
500
Verilen anahtar sözlükte yoktu.
Daha az emmek için bu kodu nasıl yeniden düzenleyebilirim (hala işlevsel olsa da)?
TryGetValue
Ben bu sayfayı buldum çünkü, en iyi bahis olabilir gibi bir yaklaşım görünüyor: goo.gl/7YN6 ... ama emin nasıl kullanılacağını değilim. Yukarıdakirow
kodumda bir 'DataRow` nesnesidir, bu yüzden örnek kodunuzun doğru olduğundan emin değilim ...