if (queryString["secure"].EqualsAny(new string[] {"true","1"}, StringComparison.InvariantCultureIgnoreCase))
{
parameters.Protocol = Protocol.https;
}
tarafından ben aradım doğru rotayı
public static bool EqualsAny(this string s, string[] tokens, StringComparison comparisonType)
{
foreach (string token in tokens)
{
if (s.Equals(token, comparisonType))
{
return true;
}
}
return false;
}
gidiyorum emin olmak DÜZENLEME: Bazı mükemmel öneriler, tam olarak aradığım şey gibi. Teşekkür
DÜZENLEME:
aşağıdaki uygulanması
public static bool EqualsAny(this string s, StringComparison comparisonType, params string[] tokens)
{
// for the scenario it is more suitable for the code to continue
if (s == null) return false;
return tokens.Any(x => s.Equals(x, comparisonType));
}
public static bool EqualsAny(this string s, params string[] tokens)
{
return EqualsAny(s, StringComparison.OrdinalIgnoreCase, tokens);
}
o
if (queryString["secure"].EqualsAny("true","1"))
{
parameters.Protocol = Protocol.https;
}
bir çok ağlamaya çağıran kod basitleştirilmiş çünkü IEnumerable üzerinde params kullanarak tercih karar verdik önceki
if (queryString["secure"] != null)
{
if (queryString["secure"] == "true" || queryString["secure"] == "1")
{
parameters.Protocal = Protocal.https;
}
}
Tekrar teşekkürler!
Şahsen, Uzantınızın yönteminin sözdizimi hakkında merak önce bir ön soru sormak gerektiğini düşünüyorum. İlk olarak, diğerlerinin de belirttiği gibi, bu sadece tokens.Any() yönteminin bir tersine çevrilmesidir, ikincisi, kullanım örneğinizde, okunması ve değiştirilmesi kolay olan basit bir kavramdır "bu doğru bir değerdir" Özel bir uzantı yöntemini ve bir on-the-fly dizisini içeren karmaşık bir ifadeyle. IMO, bu küçük gereksiz gereksizlik parçaları eklenir. – tnyfst