- KeyValuePair требует двух аргументов типа. В вашем объявлении делегата написано просто
KeyValuePair item
без аргументов типа. Измените это на delegate(KeyValuePair<string,string> item)
HttpUtility
объявлено в пространстве имен System.Web
; добавьте using System.Web;
к операторам using в начале файла.
Лично мне проще и понятнее использовать лямбда-стиль для такого вида кода:
byte[] buffer =
Encoding.UTF8.GetBytes(
String.Join("&",
Array.ConvertAll<KeyValuePair<string, string>, string>(
inputs.ToArray(), (item) => item.Key + "=" + HttpUtility.UrlEncode(item.Value))));
После того как код C # заработал, конвертер DeveloperFusion C # в VB.NET выполняет свою работу:
' Converted from delegate style C# implementation '
Dim buffer As Byte() = Encoding.UTF8.GetBytes( _
[String].Join("&", _
Array.ConvertAll(Of KeyValuePair(Of String, String), String)(inputs.ToArray(), _
Function(item As KeyValuePair(Of String, String)) (item.Key & "=") + HttpUtility.UrlEncode(item.Value))))
' Converted from Lambda style C# implementation '
Dim buffer As Byte() = Encoding.UTF8.GetBytes( _
[String].Join("&", _
Array.ConvertAll(Of KeyValuePair(Of String, String), String)(inputs.ToArray(), _
Function(item) (item.Key & "=") + HttpUtility.UrlEncode(item.Value))))