2017-03-07 14 views
1

このVB.NETコードをC#に変換しています。Dictionary(String、String)C#でアイテムのプロパティが見つからない

Dim dict As New Dictionary(Of String, String) 

If dict.TryGetValue(key, val) Then 
    dict.Item(key) = val & "~" & row.Item(y).ToString 
Else 
    dict.Add(key, row.Item(y).ToString) 
End If 

ここにはC#コードがあります。 if dict.TryGetValueの後の行に注目してください。 IntellisenseはC#でItemプロパティを表示しません。 C#の正しい構文は何ですか?

Dictionary<string, string> dict = new Dictionary<string, string>(); 

if (dict.TryGetValue(key, out val)) { 
    dict.Item[key] = val + "~" + row.ItemArray[y].ToString(); 
} else { 
    dict.Add(key, row.ItemArray[y].ToString()); 
} 
+2

'dictの[キー]'を参照してください - なしプロパティ –

+1

'項目[キー]'間違っています。辞書の '[]'はインデクサーであり、正しい使い方は 'dict [key]'です。 – dcg

+3

VB.NETの構文も間違っているか、少なくとも完全に予期しないものです。インデクサープロパティを呼び出す正しい方法は 'dict(key)'です。 –

答えて

3

あなたがC#で辞書内のキーの値にアクセスする方法は以下の通りです:

dict[key] 

このライン言われていること:

dict.Item[key] = val + "~" + row.ItemArray[y].ToString(); 

のようなを変更する必要があります以下:

dict[key] = val + "~" + row.ItemArray[y].ToString(); 
+0

Christos - あなたの答えをありがとう - それは素晴らしい仕事です! – MisterT

+0

@MisterTようこそ!私は喜んで私が助けた:) – Christos

3

dict.Item[key]dict[key]である必要があります。 Indexerにアクセスしています。これらは、定義されているインスタンスから直接アクセスされます。

Indexers (c#)

関連する問題