在C#中的运算符

brg*_*ner 8 c# syntax enums

我认为Commodore 128 Basic中有一个in运算符.
c#中是否有in运算符?

我的意思是有一个善良的经营者

if(aString in ["a", "b", "c"])  
  Console.Out.WriteLine("aString is 'a', 'b' or 'c'");
Run Code Online (Sandbox Code Playgroud)

Edit1:目前我需要它来决定枚举值是否在某些枚举值的范围内.

Edit2:谢谢大家对Contains()的解决方案.我将来会用它.但目前我需要枚举值.我可以用Contains()或其他方法替换以下语句吗?

public enum MyEnum { A, B, C }

class MyEnumHelper
{
  void IsSpecialSet(MyEnum e)
  {
    return e in [MyEnum.A, MyEnum.C]
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑3:对不起,这不是基本的.我只是用Google搜索了一段时间,发现Turbo Pascal是我能看到它的候选人.见http://en.wikipedia.org/wiki/Pascal_%28programming_language%29#Set_types

Edit4:到目前为止的最佳答案(2012年2月15日结束):

  • 对于列表和数组:使用Contains()解决方案 接受答案和所有其他答案
  • 对于Enums:TheKaneda的回答以及不同扩展方法的优缺点列表

And*_*are 12

试试这个:

if(new [] {"a", "b", "c"}.Contains(aString))  
    Console.Out.WriteLine("aString is 'a', 'b' or 'c'");
Run Code Online (Sandbox Code Playgroud)

这使用该Contains方法搜索数组aString.

  • @brgerner:对于一些语法糖(有利有弊),请参阅http://stackoverflow.com/a/5320727/1169696 - 允许你做`if(MyEnumValue.In(MyEnum.First,MyEnum.Second) ,MyEnum.Third)){...}` (2认同)