对于VS2005中的C#,你可以这样做:
if number in [1,2..10,12] { ... }
将检查方括号中定义的集合中是否包含number
?
答案 0 :(得分:1)
.NET 2.0(这是VS 2005的目标)没有Set
的概念。
.NET 3.5引入了HashSet<T>
,.NET 4引入了SortedSet<T>
。
虽然它们没有文字形式 - 虽然集合初始化程序提供的东西略微类似:
new HashSet<int> { 1, 2, 4, 12 }
当然,你可以只使用数组:
int[] values = { 1, 2, 5, 12 };
但是样本的范围部分 - 2..10
- 在任何版本的C#中都不存在。
答案 1 :(得分:1)
不幸的是没有。
但是,您可以使用Contains()
的{{1}}方法:
List<int>
如果List<int> numbers = ...
if (numbers.Contains(2)) { ... }
是一个数组,您可以使用数组值初始化一个新的numbers
:
List<int>
或使用Array.Exists()
:
int[] numbers = { 1, 2, 3, 4 };
List<int> newList = new List<int>(numbers);
if (newList.Contains(2)) { ... }
答案 2 :(得分:0)
您可以使用Enumerable.Range方法“实现”您想做的事情:
if (Enumerable.Range(2, 8).Concat(new [] { 1, 12 }).Contains(number)) {
....
}
当然,这并不像你在基本功能语言中那样可读......