Se eu tiver um StringValues , com os seguintes valores possíveis:
"AString"
["OnlyString"]
["FirstString", "IDontCare"]
Como posso usar a correspondência de padrões do C# para extrair uma primeira string não nula com uma linha?
Eu esperava que algo assim funcionasse, mas não funciona:
if (myStringValues is [{} myString, _] )
something(myString)
x is [{} myString, ..]
é um padrão que corresponderá anew StringValues("foo")
,new StringValues(["foo"])
enew StringValues(["foo", "bar", (...)])
_
significa descartar exatamente um..
significa descartar qualquer (incluindo nenhum)Ao escrever a pergunta, descobri que é possível resolver isso, mas não consegui encontrar uma maneira de fazer isso com uma linha como eu esperava: