Problema: Verifica se x ∉ {2, 3, 61, 71}C#: Il modo più elegante per verificare se int x è l'elemento di un determinato set?
spesso chiesto se non esiste un modo migliore di:
if (x != 2 && x != 3 && x != 61 && x != 71)
{
// do things
}
e
if (!new List<int>{ 2, 3, 61, 71 }.Contains(x))
{
// do things
}
Quest'ultimo uno sembra abbastanza elegante, ma in realtà è piuttosto irritante se lo leggi, soprattutto a causa dell'inversione. È una specie di brutta cosa perché in inglese diciamo "x non è un elemento di ...", che è difficile da esprimere in C# senza fastidioso sovraccarico. Forse uno coud dire if (Object(x).IsElementOf(new[] { ... }))
o così?
Hmm .. qualche suggerimento? Esistono metodi standard .Net per testare cose del genere?
Questo è un duplicato, ma sto avendo un po 'di problemi a trovare l'altra domanda che mi ... – BoltClock
non posso votare a chiudere, esaurito, ma http://stackoverflow.com/questions/163732/recommended-net-class-for-a-collection-of-unique-integers – user7116
@Efrain, volevi dire '&&' invece di '|| '? I due frammenti di codice non fanno la stessa cosa ... –