我处于循环数据并根据设置以特定方式对其进行格式化的场景中,我担心我认为最好的风格可能会阻碍性能。
代码基本模式如下
enum setting {single, multiple, foo, bar};
Data data = getData(Connection conn, int id);
setting blah = data.getSetting();
foreach (Item item in data)
{
switch(blah)
{
case blah.single:
processDataSingle(item blah);
break;
...
}
}
我担心的是数据中可能有数千甚至数万个项目。我想知道是否将开关置于循环中可能会重复评估它可能会导致一些严重的性能问题。我知道我可以将循环放在switch
循环之前,但是每个循环都case
包含它,这似乎不太可读,因为基本功能保持不变的情况不太明显。