草庐IT

c# - 为什么 String.Contains 不直接调用最终重载?

String.Contains方法在内部看起来像这样publicboolContains(stringvalue){returnthis.IndexOf(value,StringComparison.Ordinal)>=0;}调用的IndexOf重载看起来像这样publicintIndexOf(stringvalue,StringComparisoncomparisonType){returnthis.IndexOf(value,0,this.Length,comparisonType);}这里对最终重载进行了另一个调用,然后使用签名调用相关的CompareInfo.IndexOf方法

c# - 是否需要在替换 StringBuilder 中的字符串之前进行检查(使用 "Contains"或 "IndexOf"等函数)?

C#中是否有IndexOf或Contains方法。下面是代码:varsb=newStringBuilder(mystring);sb.Replace("abc","a");stringdateFormatString=sb.ToString();if(sb.ToString().Contains("def")){sb.Replace("def","aa");}if(sb.ToString().Contains("ghi")){sb.Replace("ghi","assd");}正如您可能已经注意到的那样,我在上面一次又一次地使用ToString(),我想避免这种情况,因为它每次都会创建

c# - 由文化敏感的 String.IndexOf 方法匹配的子字符串的长度

我尝试编写一个文化感知字符串替换方法:publicstaticstringReplace(stringtext,stringoldValue,stringnewValue){intindex=text.IndexOf(oldValue,StringComparison.CurrentCulture);returnindex>=0?text.Substring(0,index)+newValue+text.Substring(index+oldValue.Length):text;}但是,它会在Unicode组合字符时阻塞://\u0301isCombiningAcuteAccentCo

c# - 在 C# 中获取 String.indexof 之后的字符串

我目前正在用C#开发一个应用程序,我需要在该应用程序中获取字符串中某个字符之后的子字符串。elseif(txtPriceLimit.Text.Contains('.')&&char.IsNumber(e.KeyChar)){intindex=txtPriceLimit.Text.IndexOf('.');stringpennies=txtPriceLimit.Text.Substring(index,txtPriceLimit.Text.Length);Console.WriteLine("Pennies:"+pennies);}出于某种原因,它不断出现IndexOutOfRangeE

c# - 使用 LINQ 查询获取索引值的集合

有更好的方法吗?string[]s={"zero","one","two","three","four","five"};varx=s.Select((a,i)=>new{Value=a,Index=i}).Where(b=>b.Value.StartsWith("t")).Select(c=>c.Index);即我正在寻找一种更有效或更优雅的方式来获取符合条件的项目的位置。 最佳答案 您可以轻松添加自己的扩展方法:publicstaticIEnumerableIndexesWhere(thisIEnumerablesource,F

c# - 为什么我的 string.indexof(char) 更快?

不要问我是怎么到那儿的,但我一直在玩弄一些掩码、循环展开等。无论如何,出于兴趣,我在考虑如何实现一个indexof方法,长话短说,所有除了屏蔽等,这个天真的实现:publicstaticunsafeintIndexOf16(strings,intstartIndex,charc){if(startIndex=s.Length)thrownewArgumentOutOfRangeException("startIndex");fixed(char*cs=s){for(inti=startIndex;i比string.IndexOf(char)快。我写了一些简单的测试,它似乎与输出完全匹配

c# - string.IndexOf OrdinalIgnoreCase 与 CurrentCultureIgnoreCase 的性能

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Stringcomparisonindotnetframework4我注意到我机器上的一个UI应用程序存在性能问题,该应用程序正在执行大量字符串比较以过滤大型列表。我将问题追溯到在对string.IndexOf的调用中使用OrdinalIgnoreCase。以下基准测试是在没有附加调试器的情况下在Release中运行的,它是一个在VS2010、Windows7中构建的4.0项目,我在这台机器上安装了4.5beta,我不确定这是否会影响它。1.190secondsforOrdinalIgnoreCase0.17

c# - 字符串索引和替换

我今天刚遇到这个问题,想知道是否有人知道为什么这个测试可能会失败(取决于文化)。目的是检查测试文本是否包含两个相邻的空格,这是根据string.IndexOf(即使我告诉字符串替换所有出现的两个相邻的空格).经过一些测试后,似乎\xAD以某种方式导致了这个问题。publicclassReplaceIndexOfSymmetryTest{[Test]publicvoidIndexOfShouldNotFindReplacedString(){stringtestText="\x61\x20\xAD\x20\x62";conststringTWO_SPACES="";conststring

JavaScript 样式/优化 : String. indexOf() v. Regex.test()

我最近遇到了这段JavaScript代码:if(",>=,,".indexOf(","+sCompOp+",")!=-1)我很感兴趣,因为要编写这个测试我会这样做:if(/(>=|)/.test(sCompOp))这只是风格上的差异,还是其他代码的作者了解一些我不知道的优化知识?或者也许有不同的充分理由这样做,或者不使用正则表达式......?在我看来,为此使用String.indexOf()有点难以阅读(但是,我对正则表达式很满意),但是有没有实例可能比编写等效的正则表达式“更好”?通过可能更快或更有效的“更好”(尽管显然这取决于浏览器的JavaScript引擎)或其他一些我不知道的

javascript - 在复杂数组上使用 indexOf 时遇到问题

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:indexOfmethodinanobjectarray?我有一个遵循这种格式的javascript数组:vararrayName=[{id:"a",gender:"man",item:"stuff"},{id:"b",gender:"woman",item:"stuff"},{id:"c",gender:"man",item:"stuff"},{id:"d",gender:"man",item:"stuff"}];有没有一种方法可以使用array.indexOf在数组中查找索引,例如,当我知道“id”变量时