c# - 写长的if语句更简洁

标签 c# asp.net

这么长的if语句有没有更好的写法?唯一改变的是条件中的 d=...

<%
if (
Request.Url.ToString().Contains("d=36423")
|| Request.Url.ToString().Contains("d=39252")
|| Request.Url.ToString().Contains("d=39280")
|| Request.Url.ToString().Contains("d=39251")
|| Request.Url.ToString().Contains("d=39246")
|| Request.Url.ToString().Contains("d=39245")
|| Request.Url.ToString().Contains("d=39244")
|| Request.Url.ToString().Contains("d=39243")
|| Request.Url.ToString().Contains("d=39242")
|| Request.Url.ToString().Contains("d=39241")
|| Request.Url.ToString().Contains("d=39240")
|| Request.Url.ToString().Contains("d=26009")
|| Request.Url.ToString().Contains("d=39239")
|| Request.Url.ToString().Contains("d=39238")
|| Request.Url.ToString().Contains("d=39237")
|| Request.Url.ToString().Contains("d=38816")
)
{%>

<div class="page-desktop-nav">

  <%} else {%>
  <div class="mobile-nav">
<%}%>

最佳答案

您可以将值存储在数组中并使用类似以下内容:

<%  
var arr = new string[]
  {
    "36423",
    "39252",
    "39280",
    "39251",
    "39246",
    "39245",
    "39244",
    "39243",
    "39242",
    "39241",
    "39240",
    "26009",
    "39239",
    "39238",
    "39237",
    "38816"
  };

  string url = Request.Url.ToString();
  if (arr.Any(s => url.Contains(string.Format("d={0}", s)))) {
%>

关于c# - 写长的if语句更简洁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47818726/

相关文章:

c# - 无法安装 Microsoft.Practices.EnterpriseLibrary.ConfigConsoleV6.vsix - “extension not installable on … installed products”

c# - 如何从类中的函数使用 C# 访问 MySQL 数据库?

c# - NUnit 子序列断言

c# - .NET MVC Razor 动态表单生成

c# - Winforms:SuspendLayout/ResumeLayout 还不够吗?

javascript - 当中继器内未选中复选框时禁用文本框

asp.net - 如何从布局文件运行代码?

c# - Radgrid 填充容器高度

asp.net - CSS 仅适用于 visual studio designer

c# - 像这样从另一个线程发送电子邮件可以吗?