C# 值元组类型模式

C# 值元组类型模式,c#,c#-7.0,valuetuple,C#,C# 7.0,Valuetuple,我试图使用C#7中的类型模式来对抗元组类型: var lst = new List<object>(); lst.Add("foo"); lst.Add(("bar","baz")); foreach (var item in lst) { switch (item) { case string s: break; case (string, string) t: //Compiler error here

我试图使用C#7中的类型模式来对抗元组类型:

var lst = new List<object>();
lst.Add("foo");
lst.Add(("bar","baz"));

foreach (var item in lst) {
    switch (item) { 
        case string s:
            break;
        case (string, string) t: //Compiler error here
            break;
    }
}
var lst=newlist();
第1条添加(“foo”);
第一段加上((“酒吧”、“酒吧”);
foreach(lst中的var项目){
开关(项目){
大小写字符串s:
打破
case(string,string)t://此处出现编译器错误
打破
}
}
但是编译器给了我以下错误:

无效的表达式术语“字符串” 应为常量值

我如何解决这个问题


注意:我知道我可以使用:

case ValueTuple<string,string> t:
案例值组t:

但是我想知道是否有更好的语法。

只要使用
case-ValueTuple t:


当我发布这个答案时,你刚刚在你的问题中添加了相同的解决方案。好的,你必须坚持使用这个解决方案,直到他们为
案例(,):
语法添加编译器支持(因为这是一个边缘案例,所以不要等待)。

有不同种类的模式没有在C#7.0中实现,但是在中被跟踪,包括你描述的递归模式和位置模式。其中一些是以后7.x点版本的候选版本