草庐IT

string.format

全部标签

c# - 有没有办法在不转换字符串的情况下在 C# 中比较日期 "strings"?

我有两个字段:stringdate1="04/26/10";stringdate2="04/25/10";我怎样才能像这样比较这两个字段?:if(date2是否可以在不先将字段转换为单独的日期类型变量的情况下完成此操作?编辑:我应该提到这些值来自数据库表,其中日期值以字符串格式开头。旧的遗留代码... 最佳答案 不,但在C#中转换为日期并不困难。if(DateTime.Parse(date2,CultureInfo.InvariantCulture)CultureInfo取决于字符串日期在遗留数据库中的格式。请参阅:DateTime

c# - 如何将 List<String> 转换为 Dictionary<int,String>

我有List,我需要将其转换为Dictionary自动生成key,有什么最短的方法可以实现吗?我试过:vardictionary=newDictionary();intindex=0;list.ForEach(x=>{definitions.Add(index,x);index++;});但我认为这是肮脏的方式。 最佳答案 vardict=list.Select((s,i)=>new{s,i}).ToDictionary(x=>x.i,x=>x.s); 关于c#-如何将List转换为Di

c# - 性能问题 : comparing to String. 格式

不久前,JonSkeet的一篇文章在我脑海中植入了构建一个CompiledFormatter类的想法,用于在循环中使用而不是String.Format()。这个想法是对String.Format()的调用部分花在解析格式字符串上的开销;我们应该能够通过将该代码移出循环来提高性能。当然,诀窍是新代码应该完全匹配String.Format()行为。这周我终于做到了。我经历了使用.NetframeworksourceprovidedbyMicrosoft直接调整他们的解析器(事实证明String.Format()实际上将工作交给了StringBuilder.AppendFormat())。我

c# - 为什么 string.IsNullOrEmpty 比比较快?

这个问题在这里已经有了答案:WhyisString.IsNullOrEmptyfasterthanString.Length?(7个答案)关闭9年前。出于性能原因,MSAnalyzer建议使用string.IsNullOrEmpty而不是将其与null或空字符串进行比较警告470CA1820:Microsoft.Performance:将...中的“string.operator==(string,string)”调用替换为对“String.IsNullOrEmpty”的调用。这是为什么呢?调用另一个函数并将其传递给某个对象的引用(无论如何都需要执行某种比较)的要求难道不应该比执行比较

c# - "if (object is (string, Color))"c# 7.0 元组用法不起作用

我使用的是VisualStudio2017RC,我已经安装了System.ValueTuple包,它启用了新的c#7.0元组用法,但我无法让它在这种特定情况下工作:如您所见,第一种方法没有任何红色波浪线,而且很管用。但是尝试执行ois(string,Color)失败并出现不相关的错误:新的元组不能这样用吗?或者它只是包裹的当前状态?我已经将它更新到最新版本btw,此时是4.3.0。我读过thisMSDNpost但没有发现任何这样的用法。 最佳答案 Roslyncontainsteststhatensureusingtuplesinp

c# - 如何在 .NET 4.0 之前将 TimeSpan 格式化为字符串

我正在使用.NET3.5在C#中进行编译,并尝试将TimeSpan转换为字符串并设置字符串格式。我想用myString=myTimeSpan.ToString("c");但是TimeSpan.ToString方法直到.NET4.0才将格式字符串作为参数,而我使用的是.NET3.5。那么您如何将TimeSpan格式化为字符串?我的最终目标是以hh:mm:ss格式显示TimeSpan,但目前正在接收hh:mm:ss:fffffff。我试过用myString=string.Format("{0:hh:mm:ss}",myTimeSpan);但string.Format仅格式化我的DateTi

c# - string str 和 string str=null 的区别

我想知道当我们声明一个变量时内部到底发生了什么,就像这样:stringtr;stringtr=null;在调试时,我注意到这两个值都只显示空值。但是当使用reftr而不初始化null时,它会给出错误,而第二行不会。请帮助我深入了解它 最佳答案 你的第一条语句只是声明,你的第二条语句是声明+初始化。stringtr;//JustDeclarationstringtr=null;//Declaration+Initialization.如果您尝试仅在声明中使用tr,您可能会遇到编译时错误。(第一种情况)例如:stringtr;//Jus

c# - 使用数组作为 string.Format() 的参数

当尝试使用数组作为string.Format()方法的参数时,出现以下错误:FormatException:Index(zerobased)mustbegreaterthanorequaltozeroandlessthanthesizeoftheargumentlist.代码如下:place=newint[]{1,2,3,4};infoText.text=string.Format("Player1:{0}\nPlayer2:{1}\nPlayer3:{2}\nPlayer4:{3}",place);数组包含四个值,String.Format()中的参数也相同。是什么导致了这个错误?(

c# - 功能 'interpolated strings' 在 C# 5 中不可用。请使用语言版本 6 或更高版本

有一个类似的问题here但我相信这涉及不同的原因。我将一个类从一个较新的项目移到了一个较旧的项目中。两者都以.net4.6为目标,但是在移动之后我在构建时收到以下错误。Feature'interpolatedstrings'isnotavailableinC#5.Pleaseuselanguageversion6orgreater.我尝试在属性窗口中将我的项目设置为使用C#6构建,但没有任何更改。 最佳答案 我终于找到了改变它的地方。有时当您更新目标框架版本时,这似乎并没有改变。 关于c

c# - 为什么 new String ("Hello") 在 C# 中无效?

制作背后的逻辑/原因是什么Strings=newString("HelloWorld");在C#中非法?错误是Thebestoverloadedmethodmatchfor`string.String(char*)'hassomeinvalidarguments我对API文档不感兴趣,我感兴趣的是为什么这是非法的。是因为池静态字符串?像Java将Integer(-128)池化为Integer(127)并产生可怕的结果?(当然还有字符串) 最佳答案 使用构造函数基于另一个现有字符串创建新字符串是毫无意义的-这就是为什么没有构造函数重载