VS2005中的C#:整数有集合式表示法吗?

VS2005中的C#:整数有集合式表示法吗?,c#,visual-studio-2005,.net-2.0,set,C#,Visual Studio 2005,.net 2.0,Set,对于VS2005中的C#,您可以这样做: if number in [1,2..10,12] { ... } 这将检查方括号中定义的集合中是否包含number。.NET2.0(VS2005目标)没有集合的概念 .NET 3.5引入了HashSet,而.NET 4引入了SortedSet 尽管集合初始值设定项提供了一些稍微类似的内容,但它们并没有文字形式: 但是示例的范围部分-2..10-在任何版本的C#中都不存在。不幸的是,不存在 但是,您可以使用列表的Contains()方法: 或使用: 您

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

if number in [1,2..10,12] { ... }
这将检查方括号中定义的集合中是否包含
number

.NET2.0(VS2005目标)没有
集合的概念

.NET 3.5引入了
HashSet
,而.NET 4引入了
SortedSet

尽管集合初始值设定项提供了一些稍微类似的内容,但它们并没有文字形式:

但是示例的范围部分-
2..10
-在任何版本的C#中都不存在。

不幸的是,不存在

但是,您可以使用
列表的
Contains()
方法:

或使用:

您可以使用以下方法“某种程度上”做您想做的事情:


当然,这远不如在基本函数式语言中看到的可读性…

据我所知,在C#2.0(VS2005)中没有Linq可用。
new HashSet<int> { 1, 2, 4, 12 }
int[] values = { 1, 2, 5, 12 };
List<int> numbers = ...
if (numbers.Contains(2)) { ... }
int[] numbers = { 1, 2, 3, 4 };
List<int> newList = new List<int>(numbers);
if (newList.Contains(2)) { ... }
Array.Exists(numbers, delegate(int i) { return i == 2; });
if (Enumerable.Range(2, 8).Concat(new [] { 1, 12 }).Contains(number)) {
    ....
}