是否有理由在字符串/列表上使用.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没有这样的过载。