2017-01-24 4 views
0

Gibt es eine einfache Möglichkeit, zu überprüfen, ob eine längere Schnur eine der definierten Teile eines Enum enthält unter Verwendung von C#Überprüfen Sie, ob Zeichenfolge enthält mindestens ein Teil eines Enum

Zum Beispiel habe ich die folgende Enum haben:

enum myEnum 
{ 
    this, 
    is, 
    an, 
    enum 
}; 

und ich habe so eine Zeichenfolge:

string myString = "here I have a sample string containing an enum"; 

da die Zeichenfolge mit dem Schlüsselwort enum wird, das ich möchte dies in der Zeichenfolge zu finden.

so würde ich eine Funktion wie string.contains(myString,myEnum) benötigen. Diese Funktion sollte dann wahr oder falsch werden. Natürlich könnte ich jeden Wert in der Enum vergleichen - aber es könnte einen einfacheren Weg geben ...

Wie kann ich das erreichen?

Antwort

6

Ihre emum ...

public enum MyEnum 
{ 
    @this, 
    @is, 
    an, 
    @enum 
} 

... überprüfen ...

var myString = "here I have a sample string containing an enum"; 
var found = Enum.GetNames(typeof(MyEnum)).Any(e=>myString.Contains(e)); 
+0

@ChrsitophH Unsere Antworten sind die gleichen, Matthew mich nur durch 15 Sekunden schlagen. –

+0

Um fair zu sein, erstellt Ihr auch eine Liste anstatt nur das Array von 'Enum.GetNames' zu benutzen;) –

2

Zunächst erhalten alle String-Werte Ihrer ENUM

List<string> s = new List<string>(Enum.GetNames(typeof(myEnum))); 

Dann überprüfen die Existenz!

s.Any(s=> myString.Contains(s)); 
Verwandte Themen