0

DB から取得した 2 つの値を持つ辞書変数があります。DBの値を更新する必要があり、更新中に更新された値が辞書の値に存在するかどうかを確認する必要があります。どのように比較できますか。これまで私はこれだけのことをしてきました。これが正しいか間違っているかにかかわらず、私を助けてください。

DBからデータを取得し、ディクショナリ変数「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 と新しいメール ID を比較するにはどうすればよいですか。

Dictionary のこれら 2 つの値を新しい値と比較するのを手伝ってください。

ありがとう、

ウダヤ S.

4

3 に答える 3

2

これを試して

 Dim oldValue As String
 If memberEmaillList.TryGetValue(EngMemID, oldValue) AndAlso oldValue <> EngMemEmail Then
        NotifyOnUpdate(newMember)
 End If
于 2013-08-13T12:23:47.790 に答える
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
于 2013-08-13T12:43:17.297 に答える
0

これはC#です

if(memberEmaillList.ContainsKey(newMember.EngMemID))
{
     if(string.comare(memberEmaillList[newMember.EngMemID],newMember.EmailAddress,true) == 0))
     {
        //have match
     }
     else 
     {
        //no match
     }
}
于 2013-08-13T12:34:59.787 に答える