将哈希表更改为字典

奥利维尔·庞斯(Olivier Pons)

我已经读过但是,没有任何实例可以使它起作用。所以我自己尝试了。这是我的代码:

public void AskServer(List<Kvp> kvps)
{
    WWWForm form = new WWWForm();
    Hashtable headers = form.headers;
    if (this._lastCookies != string.Empty) {
        headers.Add("Cookie", this._lastCookies);
    }
    foreach (var arg in kvps) {
        form.AddField(arg.Key, arg.Value.ToString());
    }
    form.AddField("pseudo", this._pseudo);
    form.AddField("jeton", this._dernierJeton.ToString());
    StartCoroutine(SendToServer(
        new WWW(this._URL, form.data, headers)
    )); 
}

现在,有一个警告说,调用newWWW(this._URL, form.data, headers)已过时,我应该在字典中使用那个。声明如下:

    public WWW(string url, byte[] postData, Dictionary<string, string> headers);
    [Obsolete("This overload is deprecated. Use the one with Dictionary argument.")]
    public WWW(string url, byte[] postData, Hashtable headers);

因此,当我尝试在问题开头提供的链接中使用该示例时,我有这样的代码,该代码不起作用:

public static Dictionary<K, V> HashtableToDictionary<K, V>(Hashtable table)
{
    return table
      .Cast<DictionaryEntry>()
      .ToDictionary(kvp => (K)kvp.Key, kvp => (V)kvp.Value);
}

public void AskServer(List<Kvp> kvps)
{
    WWWForm form = new WWWForm();
    Dictionary<string, string> headers = StateManager.HashtableToDictionary<string, object>(form.headers);
    if (this._lastCookies != string.Empty) {
        headers.Add("Cookie", this._lastCookies);
    }
    foreach (var arg in kvps) {
        form.AddField(arg.Key, arg.Value.ToString());
    }
    form.AddField("pseudo", this._pseudo);
    form.AddField("jeton", this._dernierJeton.ToString());
    StartCoroutine(SendToServer(
        new WWW(this._URL, form.data, headers)
    )); 
}

错误是:Assets/Code/StateManager.cs(58,36): error CS0029: Cannot implicitly convert typeSystem.Collections.Generic.Dictionary'到System.Collections.Generic.Dictionary<string,string>'

我究竟做错了什么?有没有更有效的方法呢?

网络

问题是您试图分配Dictionary<string, object>给type变量Dictionary<string, string>为了解决问题更改

Dictionary<string, string> headers = 
    StateManager.HashtableToDictionary<string, object>(form.headers);

Dictionary<string, object> headers = 
    StateManager.HashtableToDictionary<string, object>(form.headers);

或者

Dictionary<string, string> headers = 
    StateManager.HashtableToDictionary<string, string>(form.headers);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将列表更改为字典

来自分类Dev

将列表更改为字典

来自分类Dev

将哈希值更改为数组

来自分类Dev

openapi 3.0 - 从数组更改为字典/哈希图

来自分类Dev

将字典中的列表更改为集合?

来自分类Dev

将字典的值更改为其他字典

来自分类Dev

如何将字符串更改为数组(哈希)?

来自分类Dev

将结果表从列更改为行

来自分类Dev

更改字典的哈希函数

来自分类Dev

更改字典的哈希函数

来自分类Dev

将字典键从字符串更改为整数

来自分类Dev

将字符串列表更改为字典列表

来自分类Dev

将元组列表更改为字典(Python方式)

来自分类Dev

如何将字典更改为字符串

来自分类Dev

将字典的值类型从列表更改为集合

来自分类Dev

将字典的所有值更改为字符串

来自分类Dev

如何将单个属性更改为值字典?

来自分类Dev

将默认的AspNet表更改为我自己的表

来自分类Dev

将表更改为视图-表使用日期功能

来自分类Dev

为什么将Ruby哈希称为哈希,而不将其称为映射,字典,表或关联数组?

来自分类Dev

在将XML转换为Rails中的哈希值时,将“-”更改为“ _”

来自分类Dev

在将XML转换为Rails中的哈希值时,将“-”更改为“ _”

来自分类Dev

角度-如何将编码的url识别为$ routeProvider-将哈希更改为%23时

来自分类Dev

将json数组更改为angularjs中的表

来自分类Dev

MySQL将表引擎MyISAM更改为InnoDB

来自分类Dev

如何将xml数据更改为表

来自分类Dev

Codeigniter php将表方向更改为垂直

来自分类Dev

使用数据透视表将行更改为列

来自分类Dev

将Excel工作表更改为不同的格式