将对象转换为KeyValuePair抛出异常

时间:2014-09-19 10:56:20

标签: c# asp.net .net

我有一个asp.net应用程序,它有一个函数接收一个包含键值<string,string>的集合的对象参数,我想将这些对象转换为keyValuePair <string,string>.

这是我的代码:

[WebMethod]
public static string ProcessIT(object employeeDts1, string val)
{
      KeyValuePair<string, string> txt = new KeyValuePair<string, string>();
      txt = ( KeyValuePair<string, string>)employeeDts1 ;
      if (txt!=null)
      {
          //here I process that object...
      }
}

但问题是,当我将该对象转换为Keyvaluepair时,我收到以下错误

  

“指定的演员表无效。”

1 个答案:

答案 0 :(得分:0)

你说它是一个 KeyValuePair的集合,所以你当然不能将该集合强制转换为KeyValuePair的单个实例。

您要么想要创建另一个集合,要么只从该集合中取一个 - 这是什么?

public static string ProcessIT(object employeeDts1, string val)
{
      // cast object to concrete type, assuming collection is IEnumerable here
      // but obviously only you know what the type is
      var KvpCollection = employeeDts1 As IEnumerable<KeyValuePair<string,string>>;
      if (KvpCollection == null) 
        {
           // bad data, you better handle it and not carry on
        }
      foreach (var keyValuePair in KvpCollection)
      {
        // do something to each of your keyValuePair objects ...
      }
}