是否有理由在字符串/列表上使用.Contains而不是.IndexOf? 我將使用.Contains編寫的大多數代碼將在需要項目的索引後不久,因此將不得不做兩個語句。但爲什麼不在一個呢?集合/字符串.Contains vs集合/ string.IndexOf
if ((index = blah.IndexOf(something) >= 0)
// i know that Contains is true and i also have the index
是否有理由在字符串/列表上使用.Contains而不是.IndexOf? 我將使用.Contains編寫的大多數代碼將在需要項目的索引後不久,因此將不得不做兩個語句。但爲什麼不在一個呢?集合/字符串.Contains vs集合/ string.IndexOf
if ((index = blah.IndexOf(something) >= 0)
// i know that Contains is true and i also have the index
您是對的IndexOf
是比Contains
更普遍的操作。但是,Contains
仍然非常有用,因爲它明確表示操作。
if(blah.IndexOf(something) >=0)
{
}
並不像
if(blah.Contains(something))
{
}
那樣明顯的操作,所以如果你需要的指數,那麼你應該使用IndexOf
操作,如果你只需要知道,如果字符串包含的子字符串,然後使用Contains
。
使用該工具創建作業。
它們是用於不同目的的不同功能,但您可以使用IndexOf來模擬包含。
使用Contains的原因是什麼?在Linq中,尤其是在翻譯成sql時,變成了一個相對簡單的sql語句,IndexOf翻譯起來更加複雜
你想要使用Contains的一個原因是它有一個重載,它允許你指定一個IEqualityComparer<String>
(如果你希望比較是不區分大小寫的話)。 IndexOf沒有這樣的過載。