C#4.0面向对象的时间约束

C#4.0面向对象的时间约束,c#,object,oop,C#,Object,Oop,我在for循环中有许多if语句,我正在寻找switch语句以外的替代语句。就时间限制而言,哪一个最好 我的代码: anotherlist foreach(x objx in xlist) { if(objx.att1=anotherlist.someatt) do something if(objx.att2=anotherlist.someatt) do something if(objx.att3=anotherlist.someatt)

我在
for
循环中有许多
if
语句,我正在寻找
switch
语句以外的替代语句。就时间限制而言,哪一个最好

我的代码:

anotherlist

foreach(x objx in xlist)
{
if(objx.att1=anotherlist.someatt)
        do something

if(objx.att2=anotherlist.someatt)
        do something

if(objx.att3=anotherlist.someatt)
        do something
...
这种情况持续大约15到20次
if
语句


有人能推荐一个替代品吗?

我有一个替代品,虽然在时间上不会更好,但可能更干净

你可以有一个字典,字典的键是所有的
另一个列表。一些可能性,值是“do something”函数的degate


然后您可以简单地执行
DictionaryName[objx.att1]。调用(参数)
而不是所有这些
if(condition…

这里的“时间约束”是什么意思?时间约束意味着这里的超额时间更快
=
是赋值运算符,在条件中使用它可能不是您想要的。事实上,据我所知,编译器会发出警告,或者根据变量类型,发出语法错误。使用
==
进行比较。@Tanaji:这很不礼貌。你是按小时付钱给乔纳森的吗?实际上,switch语句可以编译成字典(优化器)。但是OPs代码不适用于交换机,这就留下了这个。@Tanaji:你失去了我的合作。