为什么IndexOf不能与StringCompare一起使用?

时间:2015-10-01 01:21:34

标签: c# string-comparison indexof currentculture ignore-case

我收到此错误

    string v = "aeiou";
    foreach(int i in lokacija.Naziv) {
      if(v.indexOf(lokacija.Naziv[i], StringComparison.CurrentCultureIgnoreCase) = -1)
        s+=lokacija.Naziv[i];
    }

错误说“无法从System.StringComparison转换为int”。但我知道方法indexOf(string)有一个重载,它接受StringComparison类型的参数。那我怎么解决这个问题呢?

3 个答案:

答案 0 :(得分:2)

首先,您应该使用==进行比较。

其次,所有IndexOf重载的第一个参数是char,其第二个参数是int。这就是你得到那个错误的原因。要使用收到StringComparison的重载,请将第一个参数设为string,如下所示:

if (v.indexOf(lokacija.Naziv[i].ToString(), StringComparison.CurrentCultureIgnoreCase) == -1)
顺便说一句,你想从字符串中删除元音吗?我建议你试试this

答案 1 :(得分:0)

你循环似乎很奇怪......你的意思是这个吗?

foreach(string ssub in lokacija.Naziv) {
  if(v.indexOf(ssub, StringComparison.CurrentCultureIgnoreCase) = -1)
    s+=ssub;

答案 2 :(得分:0)

<@> @ Johnathan-Lonowski头上的钉子 - 你得到this版本的String.IndexOf,而不是this一个,因为你正在寻找一个字符串中的字符,而不是一个字符串一个字符串在另一个字符串中。