我有一个包含3个变量的页面。它们看起来像这样:
String[] Headers = new String[] { "Max Width", "Max Length", "Max Height" };
String currentHeader = (String)HttpContext.Current.Request.QueryString["ItemHas"] ?? "";
String checkString = (String)HttpContext.Current.Request.QueryString["ItemIn"] ?? "";
checkString是由“|”分隔的标题列表。
检查我的currentHeader
是否在我的Headers数组和checkString字符串中的最简单方法是什么?我可以做到但不少于20行代码。这似乎不是最佳解决方案。
答案 0 :(得分:5)
checkString.Split('|').Contains(currentHeader) && Headers.Contains(currentHeader)
使用LINQ。我误解了什么吗?
答案 1 :(得分:1)
if (!string.IsNullOrEmpty(currentHeader) && Headers.Contains(currentHeader) && checkString.Split('|').Contains(currentHeader))
答案 2 :(得分:1)
编写一个快速的实用方法:
private bool IsInHeader(string[] _headers, string _findme)
{
if (_headers == null || _findme == null) return false;
foreach (string s in _headers)
{
if (_findme == s) return true;
}
return false;
}
答案 3 :(得分:1)
试试这个:
if (Headers.Contains(currentHeader) && checkString.Split('|').Contains(currentHeader)) {
....
}
如果您需要它不区分大小写:
if (Headers.Contains(currentHeader, StringComparer.InvariantCultureIgnoreCase)
&& checkString.Split('|').Contains(currentHeader, StringComparer.InvariantCultureIgnoreCase) {
....
}
答案 4 :(得分:0)
也许我误解了这个问题,但这应该有效:
var checks = checkString.Split('|');
if ( currentHeader.Contains(checkString) && Headers.Contains(checkString) )
{
....
}