如何在 C# 中切换 List<string> 的大小写

2 c# nhibernate switch-statement

我想用 C# 做一个switch caseover a List<string>

假设我有以下列表:

var myList = new List<string>(new string[] { "Apple", "Pear" });
Run Code Online (Sandbox Code Playgroud)

现在我想检查一下是 Apple 还是 Pear,然后做点什么。在if statement它看起来像这样:

if (myList.Contains("Apple"))
   //do something
else if (myList.Contains("Pear"))
   //so some other thing
else
   //throw error
Run Code Online (Sandbox Code Playgroud)

现在我怎样才能以干净的方式做到这一点switch statement

小智 8

偶然发现了这个,并没有看到有人回答他。可以将其作为 switch 语句来执行,无论它是否“看起来”更好可以由用户决定。

var myList = new List<string> { "Apple", "Pear" };
switch (myList)
{
    case var _ when myList.Contains("Apple"):
        // do apple stuff
        break;
    case var _ when myList.Contains("Pear"):
        // do pear stuff
        break;
    default:
        throw new System.ArgumentException("Some error message", nameof(myList));
}
Run Code Online (Sandbox Code Playgroud)