VS2005中的C#:是否为整数设置了样式表示法?

时间:2010-06-29 06:45:23

标签: c# visual-studio-2005 .net-2.0 set

对于VS2005中的C#,你可以这样做:

if number in [1,2..10,12] { ... }

将检查方括号中定义的集合中是否包含number

3 个答案:

答案 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)) {
    ....
}

当然,这并不像你在基本功能语言中那样可读......