如何将字典中的值与新值进行比较?

时间:2013-08-13 11:33:12

标签: .net vb.net dictionary

我有一个字典变量,它有两个我从DB检索过的值。我需要更新数据库中的值,并且在更新时我需要检查更新的值是否存在于字典值中。我怎么比较。到目前为止,我已经做了很多。请帮助我这是对还是错。

从数据库中检索数据并将其存储在Dictionary变量“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()后,如何比较旧的和新的电子邮件ID。

请帮我比较这两个值,从Dictionary到新值。

谢谢,

Udhaya S。

3 个答案:

答案 0 :(得分:2)

试试这个

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

答案 1 :(得分: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

答案 2 :(得分:0)

这是C#

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