为什么我不能将新对添加到排序词典中
本文关键字:排序 添加 不能 为什么 | 更新日期: 2023-09-27 18:34:44
我有这个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
.
我错在哪里?
我错在哪里?
您正在调用 Add
方法,但期望它返回一些内容。其实不然。
如果您尝试创建一个具有相同条目和一个新条目的新词典,您可能需要:
var headerParameters = new SortedDictionary<string, string>(signatureParameters)
{
"oauth_signature", Uri.EscapeDataString(oauth_signature)
};
构造函数将创建现有字典的副本,然后集合初始值设定项将键/值对添加到新字典中。
Add
方法将项目添加到字典中,但不返回任何内容,因此您无法将Add
方法的结果分配给变量。
signature_parameters.Add("oauth_signature", Uri.EscapeDataString(oauth_signature))
您可以稍后分配它,但由于它是引用类型,因此只需复制引用。
var header_parameters = signature_parameters;
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
(