Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有条件地形成URL字符串_C# - Fatal编程技术网

C# 有条件地形成URL字符串

C# 有条件地形成URL字符串,c#,C#,我有6-7个bool值,比如bookmark、authoredBy和其他一些过滤器,我想形成url,比如如果应用了任何过滤器,它会连接到主url,比如 有什么吗?bookmark=true&author=true,像这样我可以用if-else,但那会很长。还有其他方法吗 string formQueryFromBool(string name , bool val){ return ((val) ? name + "=" + val.toString() : "" );

我有6-7个bool值,比如bookmark、authoredBy和其他一些过滤器,我想形成url,比如如果应用了任何过滤器,它会连接到主url,比如 有什么吗?bookmark=true&author=true,像这样我可以用if-else,但那会很长。还有其他方法吗

   string formQueryFromBool(string name , bool val){
         return ((val) ? name + "=" + val.toString() : "" );
   }   

 bool bookmark=false;
 bool author=true;
 var qString = formQueryFromBool("bookmark",bookmark) + "&" + formQueryFromBool("author",author)
........
string url = "http://www.google.com?";    
if(bookmark)
{
  url+="bookmark=true&"
}
if(author)
{
  url+="author=true&"
}
...........
用同样的方法处理其他变量。

好吧,这样做

........
string url = "http://www.google.com?";    
if(bookmark)
{
  url+="bookmark=true&"
}
if(author)
{
  url+="author=true&"
}
...........
String url = "google.com?";

bool bookmark = true, author=true;
if(bookmark)
{ 
   url += "bookmark=true&";
}
if(author)
{
   url = "author=true&"
}
url = url.Substring(0,url.length-1);
对于其他变量,使用相同的方法..

考虑使用该类。请勾选此示例-

String url = "google.com?";

bool bookmark = true, author=true;
if(bookmark)
{ 
   url += "bookmark=true&";
}
if(author)
{
   url = "author=true&"
}
url = url.Substring(0,url.length-1);
或者,检查此问题的答案。这是一个更面向对象的解决方案-

考虑使用该类。请勾选此示例-

或者,检查此问题的答案。这是一个更面向对象的解决方案-



我认为他不是这个意思。他可能想知道如何在服务器端干净地接收它。你说得对,filip我想要什么如果任何值为false,那么不要将其添加到querystring只添加那些为false的值true@Mac&@Filip Ekberg&@Srinivas,在任何人发表评论之前,我已经对此进行了更新,我想你们在更新我的帖子时已经发布了……。@Srinivas,可读性并不重要,OP希望避免冗长的if…else循环。那么这就是简单的方法…我不认为这就是他的意思。他可能想知道如何在服务器端干净地接收它。你说得对,filip我想要什么如果任何值为false,那么不要将其添加到querystring只添加那些为false的值true@Mac&@Filip Ekberg&@Srinivas,在任何人发表评论之前,我已经对此进行了更新,我想你们在更新我的帖子时已经发布了……。@Srinivas,可读性并不重要,OP希望避免冗长的if…else循环。那么这就是简单的方法…如果同时应用了多个过滤器,那么还会应用Supplose和bookmark author过滤器,那么Querystring应该会像这样吗?bookmark=true&author=true如果所有六个过滤器都存在,那么将所有六个值添加到查询中string@Mac如果作者的条件也是这样,就像我为bookmark做的一样。这就是我正在做的,但是代码变得有点长,所以我想知道是否还有其他简单的方法thanks@Mac然后使用Dictionary并设置键并在其中进行迭代。如果同时应用多个过滤器,那么还会应用suppose和bookmark author过滤器,然后应用Querystring应该喜欢什么吗?bookmark=true&author=true如果所有六个过滤器都存在,则将所有六个值添加到查询中string@Mac如果作者的条件也是这样,就像我为bookmark做的一样。这就是我正在做的,但是代码变得有点长,所以我想知道是否还有其他简单的方法thanks@Mac然后使用Dictionary并设置键并遍历它,如果bookmark为false,那么rinivas的方法将不起作用。url将为google.com?&author=true,这是不正确的。您应该添加后缀而不是前缀。我的方式是最好的方式,不会失败;)如果bookmark为false,Srinivas的方法将不起作用。url将为google.com?&author=true,这是不对的。您应该添加后缀而不是前缀。我的方式是最好的方式,不会失败;)