我这里有多个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