草庐IT

c# - IP 地址验证

我正在重构我的代码并想使用IPAddress.TryParse验证字符串是否为有效IPv4地址的方法,而不是使用正则表达式:publicstaticboolIsIPv4(stringvalue){IPAddressaddress;if(IPAddress.TryParse(value,outaddress)){if(address.AddressFamily==AddressFamily.InterNetwork){returntrue;}}returnfalse;}我的单元测试现在失败了,因为这些输入值返回true并被解析为以下IPAddress对象:value="0.0.0.0"-

c# - 一种解析带有 'Flags' 的 .NET 枚举字符串或 int 值的方法

有一种使用以下方法计算枚举元素的好方法://memberTypeisenumtypeif(Enum.IsDefined(memberType,valueString)){returnEnum.Parse(memberType,valueString);}else{try{varunderlyingValue=Convert.ChangeType(valueString,Enum.GetUnderlyingType(memberType));if(Enum.IsDefined(memberType,underlyingValue)){returnunderlyingValue;}}cat

C# 转换与解析

以下哪个是更好的C#代码,为什么?((DateTime)g[0]["MyUntypedDateField"]).ToShortDateString()或DateTime.Parse(g[0]["MyUntypedDateField"].ToString()).ToShortDateString()最终,转换更好还是解析更好? 最佳答案 如果g[0]["MyUntypedDateField"]确实是一个DateTime对象,那么强制转换是更好的选择。如果它不是真正的DateTime,那么你别无选择,只能使用Parse(如果你尝试使用强

c# - 在 C# 中编写解析器的最佳/最快方法

用C#构建解析器来解析我自己的语言的最佳方法是什么?理想情况下,我想提供一个语法,并将抽象语法树作为输出。非常感谢,内斯特 最佳答案 我对ANTLRv3有很好的体验.到目前为止,最大的好处是它允许您编写具有无限前瞻性的LL(*)解析器——这些可能不是最理想的,但语法可以以最直接和自然的方式编写,无需重构来解决解析器限制,解析器性能通常不是什么大问题(我希望你不是在编写C++编译器),尤其是在学习项目中。它还提供了构建有意义的ASTs的好方法。无需编写任何代码-对于每个语法产生式,您都指出“关键”标记或子产生式,这将成为一个树节点。或

c# - 从奇怪的格式解析 c# 中的 DateTime

如果我有一个奇怪格式的日期时间字符串,例如YYYY##MM##DDHH**M**SS,我如何基于它创建一个新的日期时间对象?我已经阅读了一些关于datetimeformatinfoclass的内容,但不确定如何让它工作.. 最佳答案 对于您不信任的数据,您可以使用DateTime.ParseExact或DateTime.TryParseExact。例如:usingSystem;classTest{staticvoidMain(){stringformatString="yyyy'##'MM'##'dd''HH'*'mm'*'ss";

c# - 正则表达式匹配不在引号中的关键字

我怎样才能找到不在字符串中的关键字。例如,如果我有文本:Hellothistextisanexample.blablabla"thistextisinsideastring""randomstring"moretextblablabla"foo"我希望能够匹配所有的单词text不在里面"".在其他情况下,我想匹配:请注意,我不想匹配以红色突出显示的文本,因为它在字符串中可能的解决方案:我一直在努力,这是我目前所做的:(?s)((?")|text)(?(q).*?"|)请注意正则表达式将if语句用作:(?(predicate)truealternative|falsealternativ

c# - HTML 敏捷包 : parsing an href tag

我如何从中有效地解析href属性值:7D.KulikovD000[...]我对播放器ID很感兴趣,它是:8475179这是我目前拥有的代码://Iterateallrows(players)for(inti=1;i 最佳答案 根据您的示例,这对我有用:HtmlDocumenthtmlDoc=newHtmlDocument();htmlDoc.Load("test.html");varlink=htmlDoc.DocumentNode.Descendants("a").First(x=>x.Attributes["class"]!=n

c# - 在 C# 中循环遍历 json 数组

我有一个像这样的json字符串,{"objectType":"Subscriber","objectList":[{"firstName":"name1","email":"email@example.com","address":"exampleAddress"},{"firstName":"name2","email":"email2@example.com","address":"exampleAddress2"}]}我需要在我的C#代码中解析它。我试过了,JavaScriptSerializerjson_serializer=newJavaScriptSerializer();

c# - 如何计算一串混合文本/数字中的数字

所以我想做的是,获取一个工作编号,看起来像xxx123432,然后计算条目中的数字,而不是字母。然后我想将数字的数量分配给一个变量,并使用该变量来检查作业编号以确定它们是否采用有效格式。我已经想出了如何执行检查,但我不知道如何计算作业编号中的数字。非常感谢您的帮助。 最佳答案 使用LINQ:varcount=jobId.Count(x=>Char.IsDigit(x));或varcount=jobId.Count(Char.IsDigit); 关于c#-如何计算一串混合文本/数字中的数字

C# 将包含 float 的字符串转换为整数

例如,将可以为空或包含“1.2”的字符串转换为整数的最佳方法是什么?int.TryParse当然会失败,我不想使用float.TryParse然后转换为int。 最佳答案 解决方案1:Convert.ToDouble(文化相关)您可以使用Convert.ToDouble。但是,当心!仅当当前区域性设置中的数字分隔符是句点字符时,以下解决方案才有效。vara=(int)Convert.ToDouble("1.2");解决方案2:Convert.ToDouble(文化无关)最好使用IFormatProvider并以独立于当前文化设置的方