ハッシュテーブルの配列を作成しようとしています。私はこれが最高の解決策であるかどうかは分かりませんが、PHPでは多目的配列を行うだけですが、.NETではそれほど簡単ではありません。私はかなり新しいVBのですので、もしこれが良い解決策があれば説明してください。VB.NET配列/ハッシュテーブルの問題
連絡先に2つの電子メールフィールドがあり、連絡先には複数の電子メールフィールドがあります。私はちょうど編集ページの最初の2つをロードして、何でも構いません。
Private Sub loadPrimaryContactEmails(ByVal db As CRMDataDataContext, ByVal contactID As Guid)
Dim q = (From ce In db.ContactEmails Where ce.ContactID = contactID Select ce).Take(2)
Dim Emails As Array
Dim count = 0
For Each email In q
Emails(count) = New Hashtable
Emails(count).Add("email", email.Email)
Emails(count).Add("label", email.Label)
Emails(count).Add("id", email.ContactEmailID)
count = count + 1
Next
txtPCEmail1.Text = Emails(0).Item("email")
txtPCEmail1Label.Text = Emails(0).Item("label")
lblEmail1ID.Text = Emails(0).Item("id")
txtPCEmail2.Text = Emails(1).Item("email")
txtPCEmail2Label.Text = Emails(1).Item("label")
lblEmail2ID.Text = Emails(1).Item("id")
End Sub
私はエラーに私は私の配列を参照しようと初めて取得:
txtPCEmail1.Text = Emails(0).Item("email")
をエラーは次のとおりです。
Object variable or With block variable not set.
それは構築し、私はそれがうまくいくかもしれないと思いました。私は明示的にテキストボックスフィールドを設定する必要があるので、私のデータソースをループすることはできません。これを行うより良い方法がありますか?または、ハッシュテーブルの配列を作成する方法はありますか?
EDIT - ここで良いのコードは次のとおりです。 だから私はHybridDictionary/...
Private Sub loadPrimaryContactEmails(ByVal db As CRMDataDataContext, ByVal contactID As Guid)
Dim q = (From ce In db.ContactEmails Where ce.ContactID = contactID Select ce).Take(2)
Dim Emails As New HybridDictionary()
Dim count = 1
For Each email In q
Emails.Add("email" + NCStr(count), email.Email)
Emails.Add("label" + NCStr(count), email.Label)
Emails.Add("id" + NCStr(count), email.ContactEmailID)
count = count + 1
Next
txtPCEmail1.Text = Emails("email1")
txtPCEmail1Label.Text = Emails("label1")
lblEmail1ID.Text = Emails("id1")
txtPCEmail2.Text = Emails("email2")
txtPCEmail2Label.Text = Emails("label2")
lblEmail2ID.Text = Emails("id2")
End Sub
wはハックのSOええ、種類を行ってきましたが、私が作ることにしていなければならないような気がしません。いくつかのデータを辞書や配列などにロードするための特別なメソッドです。
私はハイブリッド辞書が好きです...投稿の編集でコードを投稿します – KacieHouser