5

.IndexOfの代わりに文字列/リストに.Containsを使用する理由はありますか?.Containsを使用して作成するほとんどのコードは、アイテムのインデックスが必要になった直後に発生するため、両方のステートメントを実行する必要があります。しかし、なぜ両方を1つにしないのですか?

if ((index = blah.IndexOf(something) >= 0)
    // i know that Contains is true and i also have the index
4

3 に答える 3

7

あなたは正しいIndexOfです、それはより一般的な操作ですContains。ただし、Contains操作を明示的に表すため、依然として非常に便利です。

if(blah.IndexOf(something) >=0)
{
}

操作はそれほど明白ではありません

if(blah.Contains(something))
{
}

したがって、インデックスが必要な場合は、IndexOf操作を使用する必要があります。文字列にサブ文字列が含まれているかどうかだけを知る必要がある場合は、を使用しますContains

作成されたジョブのツールを使用します。

于 2010-05-14T01:43:31.790 に答える
2

「Contains」を使用する理由の1つは、IEqualityComparer<String>(大文字と小文字を区別しないように比較する場合などに)を指定できるオーバーロードがあることです。IndexOfにはそのような過負荷はありません。

于 2010-05-14T01:46:10.607 に答える
0

これらはさまざまな目的を目的としたさまざまな関数ですが、IndexOfを使用してContainsを模倣できます。

含む理由は?Linqでは、特にsqlに変換すると、比較的単純なsqlステートメントに変換され、IndexOfの変換はより複雑になります。

于 2010-05-14T01:43:17.123 に答える