草庐IT

Determine_if_a_string_is_numeric

全部标签

c# - 显式转换运算符失败,出现 "assembly is not referenced"错误

这是一个非常不常见的问题,肯定有很多解决方法,但我想了解实际发生的情况以及为什么它不起作用。所以我在测试解决方案中有3个程序集,第一个程序集的类型为ClassA:publicclassClassA{publicstringName{get;set;}}第二个程序集引用第一个程序集并具有B类:publicclassClassB{publicstringName{get;set;}publicstaticexplicitoperatorClassA(ClassBobjB){returnnewClassA{Name=objB.Name};}}它有一个显式运算符可以强制转换为ClassA类型。

c# - C# "is"运算符返回不一致的结果

我想在C#中使用“is”运算符来检查对象实例的运行时类型。但它似乎并没有像我预期的那样工作。假设我们有三个程序集A1、A2和A3,它们都只包含一个类。A1:publicclassC1{publicstaticvoidMain(){C2c2=newC2();boolres1=(c2.c3)isC3;boolres2=((object)c2.c3)isC3;}}A2:publicclassC2{publicC3c3=newC3();}A3:publicclassC3{}A1需要引用A2和A3。A2需要引用A3。运行Main()后,res1和res2按预期设置为true。当我开始将A3版本化

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.Normalize 不一致取决于上下文?

我有以下代码:stringinput="ç";stringnormalized=input.Normalize(NormalizationForm.FormD);char[]chars=normalized.ToCharArray();我在64位Windows7上使用VisualStudio2010、.net4构建此代码。我在两个上下文中的单元测试项目(平台:任何CPU)中运行它并检查chars的内容:VisualStudio单元测试:字符包含{231}。ReSharper:字符包含{231}。NCrunch:字符包含{99,807}。在msdndocumentation,我找不到任何

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

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

C# 字典性能 : Default string Comparer's GetHashCode() allocates memory in violation of guidelines, 从而破坏性能?

有anestablishedguideline获取哈希码不应分配内存,因为这会通过调用垃圾收集器对哈希表查找产生负面影响。然而,这个确切的失败是我所看到的我使用System.Collections.Generic.Dictionary的应用程序的配置文件在一个非常紧凑的循环中,我在分析器结果中发现以下内容:[3.47%]TryGetValue(TKey,TValue&)(...字典)[3.47%]FindEntry(TKey)(...字典)[3.47%]GetHashCode(string)(System.CultureAwareComparer)[3.46%]GetHashCodeO

c# - OpenXML 中的 CellValues.InlineString 和 CellValues.String 有什么区别?

我正在尝试编写一些代码来生成Excel电子表格,但我不确定CellValues.InlineString和CellValues.String在细胞。我应该用这个吗:privatevoidUpdateCellTextValue(Cellcell,stringcellValue){InlineStringinlineString=newInlineString();TextcellValueText=newText{Text=cellValue};inlineString.AppendChild(cellValueText);cell.DataType=CellValues.InlineS

c# : Why is a cast needed from an Enum to an INT when used in a switch statement? ,枚举是整数

谁能告诉我为什么我需要从我的枚举中转换为Intswitch(Convert.ToInt32(uxView.SelectedValue)){case(int)ViewBy.Client:如果我删除强制转换(int),它会失败并提示我必须使用强制转换。这是我的枚举,枚举是整数....有人知道吗?publicenumViewBy{Client,Customer} 最佳答案 在C#中,enum不仅仅是数字。相反,它们是与类型相关联的数字或在上下文中具有名称的数字。要避免在case语句中进行强制转换,您可以在switch中进行强制转换:swi

c# - 将 JSON 反序列化为 IDictionary<string,object>

这个问题在这里已经有了答案:HowdoIuseJSON.NETtodeserializeintonested/recursiveDictionaryandList?(5个答案)关闭7年前。我正在尝试将一些旧作品转换为使用NewtonsoftJSON.NET。使用System.Web.Script.Serialization.JavaScriptSerializer.Deserialize的默认处理方法(例如,如果未指定目标类型)是返回一个Dictionary用于内部对象。这实际上是JSON的一个非常有用的基本类型,因为它也恰好是ExpandoObjects使用的基础类型。并且是动态类型

C# String.Replace 双引号和文字

我是c#的新手,所以我才在这里问这个问题。我正在使用一个返回一长串XML值的Web服务。因为这是一个字符串,所以所有属性都用双引号转义stringxmlSample=""这是我的问题。我想做一个简单的string.replace。如果我在PHP中工作,我会运行strip_slashes()。但是,我使用的是C#,而且我一辈子都弄不明白。我无法写出我的表达式来替换双引号("),因为它会终止字符串。如果我将其转义,则结果不正确。我做错了什么?stringsearch="\\\"";stringreplace="\"";Regexrgx=newRegex(search);stringstri