这些是范围运算符和索引器吗?我从未见过它们像这样使用[..h]。此代码中的第 6 行:public static void Main(string[] args){ int[] a ={1,2,3,4,5,6,7,8,9}; HashSet
这些是范围运算符和索引器吗?我从未见过它们像这样使用 [..h]
。此代码中的第 6 行:
public static void Main(string[] args)
{
int[] a ={1,2,3,4,5,6,7,8,9};
HashSet<int> h=new(a);
/// do somethings on HashSet
WriteArray([..h]);
}
static void WriteArray(int[] a)
{
foreach(var n in a)
{
Console.Write($"{n} ");
}
}
使用了哪些运算符 [..h]
?您能推荐一个参考资料来研究这些运算符或使用的方法吗?
[..h]
是一个 集合表达式 和 [
里面的内容 ]
是集合的元素,例如
List<int> x = [1,2,3];
// basically:
// var x = new List<int> { 1,2,3 };
由于这被传递给一个参数,期望 int[]
, [..h]
代表一个 int[]
。那么这个数组包含什么?什么是 ..h
?在集合表达式中, ..
可以作为另一个集合的前缀来\' spread \' 该集合的元素。
由于 h
包含数字 1 到 9,这基本上是 [1,2,3,4,5,6,7,8,9]
,尽管 a HashSet
没有排序,元素的顺序可能不同。
通常 ..
用于当您想要将其他元素/集合放入集合表达式时,如文档中的示例所示:
string[] vowels = ["a", "e", "i", "o", "u"];
string[] consonants = ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
"n", "p", "q", "r", "s", "t", "v", "w", "x", "z"];
string[] alphabet = [.. vowels, .. consonants, "y"];
所以 [..h]
集合表达式的使用有点奇怪。 h.ToArray()
相反,使用集合表达式会更具可读性。