Tag: 字符串

什么更快:正则表达式或字符串操作?

什么时候我应该使用Regex而不是字符串操作,反之亦然只考虑性能?

生成逗号分隔值

假设我有一个字符串集合: “foo” “bar” “xyz” 我想从列表中生成逗号分隔值,如下所示: “foo, bar, xyz” 注意最后缺少“,”。 我知道有很多方法可以生成这个: 使用for-loop和string.Format()或StringBuilder。 如果值> 0,则使用整数计数器并删除结尾“,” 第一次运行时不要放“,” 等等 我现在拥有的示例代码: if (strs.Count() > 0) { var sb = new StringBuilder(); foreach (var str in strs) sb.AppendFormat(“{0}, “, str); return sb.Remove(0, 2).ToString(); } 对于上述场景,高度可重用的最佳代码是什么?为什么?

C#对象为字符串和后退

我的问题:我有一个动态代码编译器。 可以编译一堆代码。 de代码的其余部分。 (导入,命名空间,类,主函数)已经存在。 将snippit插入其中然后将其编译为程序集并执行。 这就是用户能够执行代码snippit的方式。 main函数(执行snippit的地方)有一个返回类型的对象。 此snippit在远程计算机上执行。 代码由客户端发送到Web服务器。 远程计算机从Web服务器读取代码并执行它。 在远程计算机上,我可以轻松查看返回对象的类型及其值。 Hower我只能向网络服务器发送字符串。 问题:如何将对象转换为字符串,无论类型是什么以及如何将其转换回来? 尝试:我尝试使用ToString(),使用int,string,double和bool时工作正常。 但是图像或其他类型是不可行的,因为我还需要能够将其转换回来:) 如果有人可以帮助我,我会很高兴:) 问候

使用ToString(“F1”)时浮点的舍入不正确

我有一个浮动值:12345.6489 我使用时格式化: (12345.6489f)的ToString( “F1”) 然后我得到了结果 12345.7 但这是不正确的,因为它应该是12345.6。 有谁知道为什么会这样? 另一个提示是在格式化之前转换为double会返回正确的结果,如果我的浮点值稍微小一些,例如1234.6489,那么我也得到正确的结果。

C#通过变量名获取和设置属性

有没有办法做到这一点? 我尝试测试对象的属性是否存在,如果存在,我想设置一个值。 (也许完整的想法很糟糕,如果是真的 – 为什么?) class Info { public string X1{ set; get; } public string X2{ set; get; } public string X3{ set; get; } } Dictionary values = new Dictionary(); values.Add(“X1″,”blah1”); values.Add(“X2″,”blah2”); values.Add(“NotThere”,”blah3″); Info info = new Info(); foreach (var item in values) { string propertyName = item.Key; string value = item.Value; if […]

C#反转字符串中的所有数字?

我有一个字符串: “ 你好7866592这是我的12432字符串和823我需要翻转所有123 ” 我想成为 “ 你好2956687这是我的23421字符串和328我需要翻转所有321 ” 我使用这个正则表达式来获取所有数字: Regex nums = new Regex(“\d+”);

检查字符串是否为空或C#中的所有空格

如何轻松检查字符串是否为空白或是否包含未确定的空格量?

查看字符串中的每个字符

我想知道是否有人知道如何查看每个字符的字符串,然后将每个字符添加到新字符串? 只是一个非常基本的例子,我可以添加ToUpper和ToLowervalidation等。

C#中的字符串基准 – 重构速度/可维护性

我在自己的时间里一直在修补小函数,试图找到重构它们的方法(我最近阅读了Martin Fowler的书“ 重构:改进现有代码的设计” )。 我在更新它附近的代码库的另一部分时发现了以下函数MakeNiceString() ,它看起来像是一个很好的候选人。 事实上,没有真正的理由来替换它,但是它足够小并且做了一些小的事情,因此很容易遵循,但仍然可以获得“良好”的体验。 private static string MakeNiceString(string str) { char[] ca = str.ToCharArray(); string result = null; int i = 0; result += System.Convert.ToString(ca[0]); for (i = 1; i <= ca.Length – 1; i++) { if (!(char.IsLower(ca[i]))) { result += " "; } result += System.Convert.ToString(ca[i]); } return result; } static […]

.NET等效于StrCmpLogicalW

什么是StrCmpLogicalW的托管等价物? Nieve字符串排序规则会将列表排序为: 窗口1 窗口10 窗口12 窗口2 窗口27 窗口3 窗口4 窗口5 从Windows XP开始,Microsoft引入了StrCmpLogicalW – 以人们期望的方式对字符串进行排序: 窗口1 窗口2 窗口3 窗口4 窗口5 窗口10 窗口12 窗口27 Nitpicker的角落: 有些人发现这种秩序令人困惑。 他们不是这次谈话的一部分。 从Windows 7开始,Microsoft将StrCmpLogicalW的function带入了CompareString并带有新的SORT_DIGITSASNUMBERS标志: Windows 7:在排序期间将数字视为数字,例如,在“10”之前排序“2”。 如果不采用P / Invoke(显然),.NET框架相当于自然地排序字符串了吗?