下面是一个方法的类中的全部:C#更优雅替代的foreach搜索
public Foo GetFooByInfoName(string name)
{
Debug.Assert(name != null, "name is not an optional argument");
foreach (Foo f in storedFoos.Values)
{
if (name.Equals(f.FooInfo.Name))
{
return f;
}
}
return null;
}
我已经明显改变了名称,因此假设FooInfo是必需的,名称不能简单地将一个属性Foo类。
有没有更优雅的方法来写这种方法?我对C#不是很熟悉,但是我觉得有一种扩展方法或者可以将这种方法变成双线程的方法。
注意我在寻找可读性,这不是减少行数的竞赛。我只是认为,如果C#有一种方法可以在一行中搜索名为Foo
的方法,那么该方法将更加清晰。
(我使用C#3.5)
正是我在找的东西 - 谢谢!并感谢关于字符串的说明。不知何故,我知道,但我继续使用'.Equals'。你能告诉我最好的语言是Java吗? :-P – Ricket 2012-03-13 15:02:25
我想这是沿着这些线。当我切换到Java时,我因为这个原因而陷入困境。 – 2012-03-13 15:42:28
关于==重载操作符的字符串:使用什么StringComparer? OrdinalCaseSensitive/CaseInsentive - CurrentCulture ...我明确的时候会发现它更清晰。 – 2012-03-13 16:23:57