如何检查上下文请求路径是否从字符串列表中给定字符串开始?



我这里有多个if语句,它们将检查请求路径是否以给定字符串开始,如果满足条件则返回true

if (context.Request.Path.StartsWithSegments("/abc/def", StringComparison.OrdinalIgnoreCase))
{  return true; }
if (context.Request.Path.StartsWithSegments("/pqr/xyz", StringComparison.OrdinalIgnoreCase))
{  return true; }

等等,再加上一些if语句....

我如何优化这一点,并创建这样的值("/abc/def")的列表,它将只是通过列表迭代,并返回true,如果条件满足?

您可以使用.Any()和期望路径列表,

var expectedPath = new List<string>(){"/abc/def", "/pqr/xyz"};
return expectedPath.Any(x => context.Request.Path.StartsWithSegments(x, StringComparison.OrdinalIgnoreCase));

您可以使用Array.Exists()方法检查路径是否为expectedPath数组

string[] expectedPath = {"/abc/def", "/pqr/xyz"};
Console.WriteLine(Array.Exists(expectedPath, element => emlement == StringComparison.OrdinalIgnoreCase);
Console.WriteLine(Array.Exists(expectedPath, element => element =="/abc/def")); // this will return true
Console.WriteLine(Array.Exists(expectedPath, element => element =="A")); //this is return false

最新更新