2013-08-13 3 views
0

У меня есть переменная словаря, имеющая два значения, которые я получил из БД. Мне нужно обновить значения в БД и при обновлении мне нужно проверить, существуют ли обновленные значения в значениях словаря или нет. Как я могу сравнивать. До сих пор я так много сделал. Пожалуйста, помогите мне, правильно это или нет.Как сравнить значения в словаре с новыми значениями?

Получение ДАННЫЕ из БД и stoing его в словарь переменной «DictionaryName»

For Each row As DataRow In ds.Tables(0).Rows 
    DictionaryName.Add(row("EngMemID").ToString(), row("EngMemEmail").ToString()) 
Next 

После этого я должен сравнить его с моим значением сизой.

 Dim pair As KeyValuePair(Of String, String) 

     For Each pair In DictionaryName 
      If DictionaryName.ContainsKey(newMember.EngMemID) Then 
       ---Condition to compare the EmailID's 
        NotifyOnUpdate(newMember) 
       --- 
      End If 
     Next 

После сравнения ContainsKey(), как я могу сравнить старый и новый идентификатор электронной почты.

Пожалуйста, помогите мне сравнить эти два значения из Словаря с новым значением.

Спасибо,

Udhaya S.

+0

Откуда возникает объект 'newMember'? И где вы сравниваете словарь 'memberEmailList' со своим другим словарем' DictionaryName'? – Alex

+0

Извините, оба словаря одинаковы. Я должен изменить имя, но я этого не сделал. «newMember» - это обновленные данные, которые поступают от другой функции, где мы меняем значения. – Udhay

ответ

2

Попробуйте эту

Dim oldValue As String 
If memberEmaillList.TryGetValue(EngMemID, oldValue) AndAlso oldValue <> EngMemEmail Then 
     NotifyOnUpdate(newMember) 
End If 
0

Это C#

if(memberEmaillList.ContainsKey(newMember.EngMemID)) 
{ 
    if(string.comare(memberEmaillList[newMember.EngMemID],newMember.EmailAddress,true) == 0)) 
    { 
     //have match 
    } 
    else 
    { 
     //no match 
    } 
} 
1

Вам не нужно Переберите все члены, вы можете просто использовать ContainsKey

If memberEmaillList.ContainsKey(newMember.EngMemID) Then 
    engMemEmail = memberEmaillList(newMember.EngMemID) 

    ' Key exists, engMemEmail is the value attached to the key 
Else 
    ' Key does not exists 
End If 
+0

Мне нужно условие, так как он должен сначала сравнить словарь «engmemid», если он равен, он должен перейти к следующему циклу и сравнить значение словаря «EmailID» с обновленным идентификатором электронной почты. – Udhay

+0

@ Вы хотите сравнить идентификатор EmailID с какой коллекцией? Я не вижу, чтобы он хранился где угодно. Вы говорите о engMemEmail? –

+0

В одной функции у нас есть словарь, в котором мы сохраняем ключ и значение как EngMemID и EmailID, которые поступают из БД. В другой функции у нас есть newmember.Engmemid и newmember.emailid, который является обновленным значением. Сначала мне нужно сравнить Dictionary.key (EngMemID) с newmember.engmemid, а затем с dictionary.value (EmailID) с идентификатором newmember.email. – Udhay

Смежные вопросы