一直想写一系列如何提高Performance和Scalability的文章,把我的相关经验和所知道的相关的技巧同大家分享。前一阵在园子里有一篇讨论for each 和 for两种循环那个具有更好的performance的blog,议论得沸沸扬扬。我觉得这是一个很好的切入点,我就已此作为引子,开始我的这个系列的文章。这篇文章的重点不是在于比较这两种循环孰优孰劣,我将讨论的重点是如何更好地定义Collection,如何在判断在什么时候该用Array,什么时候用Collection。
一、for each的本质
我们知道,所有实现了System.Collections. IEnumerable接口的类,我们都可以对它运用for each loop。为了弄清楚它的执行过程,我先给出一个Sample:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Collections;
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpZd09DOW1NR05rTm1NM1pqbGxOMkZsT1RabVpXRmxNRFl5WTJJME9HWTJOekJtTUM1bmFXWT0=)
namespaceArtech.CustomCollection
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRMU1DOHpOREF6TVdNM01EaGlabVUzTURKbVpUZ3laREF4Wm1ZMVl6WTFPVE5oWVM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJME9DOHdZbVV4TWpGbVlUVmlPRGs0T0daaVlXSmlZbU0xTWpaaFpqTmlNR1pqTUM1bmFXWT0=)
{
structEmployee
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
PrivateFields#regionPrivateFields
privatestring_employeeID;
privatestring_name;
privateint_age;
#endregion
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
Constructor#regionConstructor
publicEmployee(stringemployeeID,stringname,intage)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
this._employeeID=employeeID;
this._name=name;
this._age=age;
}
#endregion
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
PublicProperties#regionPublicProperties
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicstringEmployeeID
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
get
{return_employeeID;}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
set
{_employeeID=value;}
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicstringName
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
get
{return_name;}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
set
{_name=value;}
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicintAge
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
get
{return_age;}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
set
{_age=value;}
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
#endregion
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
Tostring#regionTostring
publicoverridestringToString()
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
returnstring.Format("\tID:\t{0}\n\tName:\t{1}\n\tAge:\t{2}\n\t",this._employeeID,this._name,this._age);
}
#endregion
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
classEmployeeList:IEnumerable
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
privateEmployee[]_employees;
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicEmployee[]Employees
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
get
{return_employees;}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
set
{_employees=value;}
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
IEnumerableMembers#regionIEnumerableMembers
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicvirtualIEnumeratorGetEnumerator()
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
Console.WriteLine("EmployeeList.GetEnumerator()isinvoked");
returnnewGenericEmployeeEnumerator(this._employees);
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
#endregion
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
classEmployeeEnumerator:IEnumerator
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
privateEmployee[]_employees;
privateint_index=-1;
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicEmployeeEnumerator(Employee[]employees)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
this._employees=employees;
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
IEnumeratorMembers#regionIEnumeratorMembers
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicobjectCurrent
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
get
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
Console.WriteLine("EmployeeEnumerator.Currentisinvoked");
returnthis._employees[this._index];
}
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicboolMoveNext()
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
Console.WriteLine("EmployeeEnumerator.MoveNextisinvoked");
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
if(this._index<this._employees.Length-1)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
this._index++;
returntrue;
}
returnfalse;
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicvoidReset()
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
this._index=-1;
}
#endregion
}
classProgram
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
staticvoidMain(string[]args)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
Employee[]employees=newEmployee[]
{newEmployee("0001","ZhangSan",21),newEmployee("0002","LiSi",30)};
EmployeeListempoyeeList=newEmployeeList();
empoyeeList.Employees=employees;
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
Console.WriteLine("Beginforeachloop![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRek9DOWlPRFUwTmpNMFl6QTVNRFExTWpsa05EQXhPR00wWXpNek16WmlaVGd6Tmk1d2JtYz0=)
");
foreach(EmployeeemployeeinempoyeeList)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
Console.WriteLine(employee.ToString());
}
Console.WriteLine("\n\nBeginwhileloop![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRek9DOWlPRFUwTmpNMFl6QTVNRFExTWpsa05EQXhPR00wWXpNek16WmlaVGd6Tmk1d2JtYz0=)
");
IEnumeratorenumerator=empoyeeList.GetEnumerator();
while(enumerator.MoveNext())
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
Employeeemployee=(Employee)enumerator.Current;
Console.WriteLine(employee.ToString());
}
}
}
}
我们先运行一下上面的程序再来讲述具体的执行的流程。
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpZMU1TODVOVFE0WldReVpUTTJaREEwTVRnMVptTXlaV0ZoWVRWaE5EYzFPVEF6WWk1S1VFVkg=)
在上面的Sample中我们先定义了一个Employee的struct,之所以使用struct而不用一般的class,我将在后面的部分介绍。
structEmployee
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRMU1DOHpOREF6TVdNM01EaGlabVUzTURKbVpUZ3laREF4Wm1ZMVl6WTFPVE5oWVM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJME9DOHdZbVV4TWpGbVlUVmlPRGs0T0daaVlXSmlZbU0xTWpaaFpqTmlNR1pqTUM1bmFXWT0=)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
PrivateFields#regionPrivateFields
privatestring_employeeID;
privatestring_name;
privateint_age;
#endregion
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
Constructor#regionConstructor
publicEmployee(stringemployeeID,stringname,intage)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
this._employeeID=employeeID;
this._name=name;
this._age=age;
}
#endregion
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
PublicProperties#regionPublicProperties
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicstringEmployeeID
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
get
{return_employeeID;}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
set
{_employeeID=value;}
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicstringName
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
get
{return_name;}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
set
{_name=value;}
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
publicintAge
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
get
{return_age;}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
set
{_age=value;}
}
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
#endregion
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRNU1TODFPRGRsTXpSaU1UQmtZMlkxWldaaVl6QTROVGxpTlRNME56QmhNbVJpTXk1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
Tostring#regionTostring
publicoverridestringToString()
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJMk1TOHpNVEV5WWpkaU5qVXlObVJpTldKak9ETmxNamMxTWpZd1lXVTJNRFV5TlM1bmFXWT0=)
![[原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的... [原创]如何改善Managed Code的Performance和Scalability系列之一:由for V.S. for each想到的...](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNdlpqSTJOekZpTjJZME1tTmxOVEExWkRsaVpqVTFZVGRoTUdOaE1qVTNabUl1WjJsbQ==)
{
returnstring.Format("\tID:\t{0}\n\tName:\t{1}\n\tAge:\t{2}\n\t",this._employeeID,this._name,this._age);
}
#endregion
}
然后我们基于这个Emplyee struct,定义了与之对应的Collection:EmplyeeList。EmplyeeList实现了System.Collections. IEnumerable接口。并以一个virtual 方法的形式实现了该接口的GetEnumerator方法。(为什么用virtual方法的原因,我会再后续部分解释)。
PublicvirtualIEnumeratorGetEnumerator()