PowerShell:不使用ForEach和GetEnumerator直接访问OrderedDictionaryKeyCollection键值
直接访问OrderedDictionaryKeyCollection指定索引元素的方法
嘿,这个需求我门儿清!要不用ForEach和GetEnumerator直接拿到OrderedDictionaryKeyCollection里索引2对应的"Charlie",其实有个很直接的办法——利用它实现的ICollection接口提供的CopyTo方法,具体操作如下:
- 第一步:创建一个和键集合长度一致的字符串数组,用来承接复制过来的元素
- 第二步:调用
CopyTo方法把集合里的所有元素批量复制到数组中 - 第三步:直接通过数组的索引
[2]就能拿到你要的"Charlie"
对应的C#代码示例:
// 假设你的OrderedDictionaryKeyCollection实例名为keyCollection string[] keyArray = new string[keyCollection.Count]; keyCollection.CopyTo(keyArray, 0); string targetKey = keyArray[2]; // 这里就得到了"Charlie"
为什么这个方法符合要求?因为CopyTo是ICollection的原生方法,它内部是直接访问OrderedDictionary的底层有序存储结构,不会触发枚举器的创建和使用,完美避开了你不想用的那些方式。
内容的提问来源于stack exchange,提问作者matekus
相关产品推荐
相关产品推荐

