C# 为什么';与StringCompare一起工作的索引?
我得到这个错误C# 为什么';与StringCompare一起工作的索引?,c#,string-comparison,indexof,currentculture,ignore-case,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(strin
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类型的参数。那么我该如何解决这个问题呢?您的循环看起来很奇怪。。。你是说这个吗
foreach(string ssub in lokacija.Naziv) {
if(v.indexOf(ssub, StringComparison.CurrentCultureIgnoreCase) = -1)
s+=ssub;
@Johnathan Lonowski一针见血-你得到的是String.IndexOf的版本,而不是一个,因为你在寻找字符串中的一个字符,而不是另一个字符串中出现的字符。首先,你应该使用
=
进行比较
其次,所有IndexOf
重载,其第一个参数是char
,其第二个参数是int
。这就是为什么你会犯这样的错误。要使用接收StringComparison
的重载,请将第一个参数设置为string
,如下所示:
if (v.indexOf(lokacija.Naziv[i].ToString(), StringComparison.CurrentCultureIgnoreCase) == -1)
顺便说一句,你想从字符串中删除元音吗?我建议你试试。什么版本的.net?我猜
lokacija.Naziv[I]
可能提供了Char
。仅当第一个参数是字符串时才接受StringComparison
s@djomles,您有机会尝试我的建议吗?@JonathanLonowski这取决于使用的.NET Framework。在.NETCore3.1中有这样一个函数:第二点不完全正确。在.NET Core中,我们有重载char,StringComparision
Well.NET Core初始版本:2016年6月27日,我不知道未来。在.NET Core中有一个带有(char,ComparisonType)
的函数