キーがintでないKeyValuePairを更新する

私はKeyValuePairを変更しようとしていますが、このコードを1

どのタイプが Properties ですか?単純な配列の場合は、文字列でアクセスする際に 問題が発生しています。
追加された 著者 Fischermaen,
見つかった質問と同じことをすることができます。文字列の値をキーとして使用できます
追加された 著者 mao,
キーのタイプはここで違いはありません。
追加された 著者 CodesInChaos,
しかし、このコードでは、 this.Properties [propertyName] = newValue
追加された 著者 CodesInChaos,
特別なことは何もなかったのですか?
追加された 著者 sll,
IDの代わりに顧客のFullNameに一致するKeyValuePairsを探していますか?
追加された 著者 Brian Dishaw,

2 答え

キーが文字列のときにペアの値を更新する特別な魔法はありません - それはまったく同じです。文字列を使用して値にアクセスしているだけです(これはキーとして使用されているすべての型を意味し、特色)。

しかし、このケースで私があなたを捨てていると思う唯一の事は、ループです。しかし、ループはインスタンスを反復しており、追加の "索引"は公開されていませんが、 key はこの場合は文字列になります

0
追加された

キーはリンクされた質問の整数でもなく、 Customer でした。 キーの種類に関係なく、同じ一般的な方法を使用できるはずです。 以下は、キーが文字列の場合に動作する、他の質問に対する受け入れられた答えのようなコード例です:

// The ToList() call here is important, so that we evaluate all of the query
// *before* we start modifying the dictionary
var keysToModify = CustomerOrderDictionary.Keys
                                          .Where(k => k == "MyString")
                                          .ToList();
foreach (var key in keysToModify)
{
    CustomerOrderDictionary[key] = 4;
}

もう一方の答えが Customer キーの Id プロパティにアクセスした場合、キーをターゲット文字列と直接比較できます。

また、辞書を1つだけ更新する場合はループを必要としないので、直接行うこともできます。辞書の辞書が指定されたキーを持つエントリを持っていることを知っている場合、または新しいエントリを作成しても構いません。

CustomerOrderDictionary ["MyString"] = 4;

新しいエントリを作成しないようにする:

if (CustomerOrderDicionary.ContainsKey("MyString"))
{
    CustomerOrderDictionary["MyString"] = 4;
}
0
追加された