下面是一個方法的類中的全部: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