我相信 C# 编译器在用于普通数组(例如 )时会重写foreach
为 a 。但是,对于存储 a 的集合,装箱是否会因迭代其内容而产生?for
int[]
struct
例如,下面的代码是否依赖 boxing( IEnumerable<KeyValuePair<int,byte>>
) 来迭代dict
?
void DoSomething(Dictionary<int,byte> dict) {
foreach(KeyValuePair<int,byte> itr in dict)
m_correlation += itr.Key; }