我有SortedDictionary
:
var signature_parameters = new SortedDictionary<string, string>
{
{ "oauth_callback", SocialEngine.twitter_aggrega_redirect_uri },
{ "oauth_consumer_key", SocialEngine.twitter_aggrega_consumer_key },
};
现在我试过了:
var header_parameters = signature_parameters.Add("oauth_signature", Uri.EscapeDataString(oauth_signature));
但它说I can't assign a void variable to a implicit method
。
我哪里错了?
答案 0 :(得分:2)
我哪里错了?
您正在调用Add
方法,但希望它返回一些内容。它没有。
如果您尝试使用相同的条目和一个新条目创建 new 字典,您可能需要:
var headerParameters = new SortedDictionary<string, string>(signatureParameters)
{
"oauth_signature", Uri.EscapeDataString(oauth_signature)
};
构造函数将创建现有字典的副本,然后集合初始值设定项将仅将键/值对添加到新字典中。
答案 1 :(得分:1)
Add
方法将项添加到字典中,但不返回任何内容,因此您无法将Add
方法的结果分配给变量。
signature_parameters.Add("oauth_signature", Uri.EscapeDataString(oauth_signature))
您可以稍后分配,但由于它是引用类型,您只需复制引用。
var header_parameters = signature_parameters;
答案 2 :(得分:0)
Add
是一个void方法,因为它将一个项添加到字典中,但它不返回任何内容。
所以改变这个
var header_parameters = signature_parameters.Add("oauth_signature", Uri.EscapeDataString(oauth_signature));
到
var header_parameters = new KeyValuePair<string, string>("oauth_signature", Uri.EscapeDataString(oauth_signature));
signature_parameters.Add(header_parameters.Key, header_parameters.Value);
(假设您想要最后插入KeyValuePair
)