0

我已经将 4,000 行代码从 VB.net 转换为 c#...我完全被这个问题绊倒了。这一直给我一个错误“只有赋值、调用递增、递减、等待和新对象表达式可以用作语句”

关于这里的错误有什么帮助吗?它还会引发查询正文必须以 select 子句或 group 子句结尾的错误。

protected static string AssembleArgumentString(Dictionary<string, string> @params,   bool urlEncode)
{
   if (urlEncode) {
     return string.Join("&", (from kv in @params where !string.IsNullOrEmpty(kv.Value)kv.Key + "=" + System.Web.HttpUtility.UrlEncode(kv.Value)).ToArray);
   } 
   else {
     return string.Join("&", (from kv in @params where !string.IsNullOrEmpty(kv.Value)kv.Key + "=" + kv.Value).ToArray);
   } 
 }
4

2 回答 2

1
protected static string AssembleArgumentString(Dictionary<string, string> @params,   bool urlEncode)
{
    if (urlEncode)
    {
        return string.Join("&", (from kv in @params where !string.IsNullOrEmpty(kv.Value)
                                 select kv.Key + "=" + System.Web.HttpUtility.UrlEncode(kv.Value)));

    }
    else
    {
        return string.Join("&", (from kv in @params where !string.IsNullOrEmpty(kv.Value)
                                 select kv.Key + "=" + kv.Value));
    } 
}
于 2012-08-17T21:30:28.003 回答
1

您的 LINQ 查询中需要一个select子句。例如:

return string.Join("&", (from kv in @params where !string.IsNullOrEmpty(kv.Value) select kv.Key + "=" + kv.Value).ToArray());

另外,不要忘记方法调用()末尾的。ToArray实际上,您甚至不需要,ToArray()因为String.Join()也可以使用IEnumerable

于 2012-08-17T21:30:36.780 回答