[英]Pattern Matching on a string
我想知道是否有一種方法可以在C#7中執行類似的操作
var test = "aaeag";
switch (test)
{
case test.StartsWith("a"):
break;
default:
break;
}
可悲的是,它看起來不可能。 這是正確的還是我做錯了什么?
在C#7中,可以使用when
防護:
var test = "aaeag";
switch (test)
{
case var s when s.StartsWith("a"):
break;
default:
break;
}
您的代碼版本所執行的操作通常稱為活動模式 。 通過定義擴展方法,例如:
public static bool StartsWithPattern(this string str, string matchPattern) =>
str.StartsWith(matchPattern);
然后您的開關可能變成:
var test = "aaeag";
switch (test)
{
case StartsWith("a"):
break;
default:
break;
}
如果您希望在將來的C#版本中看到此功能,請對此建議進行投票 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.