Tag: 字符串比较

C#与VB.Net字符串比较的区别

我实际上是想回答这个问题,但由于这个问题非常复杂,并且不太可能很快得到很好的反应,我将尝试自己完成实施。 基本问题似乎是我跟随的C#示例没有直接转换为VB。 当检查lambda中的String比较BinaryExpression时,VB将Expression.Method.DeclaringType报告为具有CompareString方法名称的CompareString 。 这显然是VB特有的。 Expression只是比较x.Content_Type “”并在其上调用ToString返回{(CompareString(x.Content_Type, “”, False) != 0)} – 这似乎很合乎逻辑(CompareString docs here )。 有人可以向我解释VB和C#如何(甚至更好,为什么)处理字符串比较的方式不同。 我想如果我能得到答案,我应该能够解决另一个问题。 编辑:为了澄清,我正在实现一个自定义LINQ提供程序,它正在检查以下Where调用: Query.Where(function(x) x.Content_Type “”) 或C#等价物…… query.Where(x=>x.Content_Type!=””); 据我所知,2应该在function上相同

复杂的“包含”字符串比较

我正在开发一个C#4.5应用程序,我需要一个函数来返回true以进行以下比较: “blaLéOnArd/ o bla”.ComplexContains(“leonardo”) 换句话说,我需要string.Compare(str1, str2, CultureInfo.InvariantCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreSymbols | CompareOptions.IgnoreNonSpace)来检查“包含! 有人可以帮忙吗?

String.comparison性能(带修剪)

我需要做很多高性能的不区分大小写的字符串比较,并意识到我这样做.ToLower()。Trim()真的很愚蠢,因为所有的新字符串都被分配了 所以我挖了一点,这种方式似乎更可取: String.Compare(txt1,txt2, StringComparison.OrdinalIgnoreCase) 这里唯一的问题是我想忽略前导或尾随空格,即Trim(),但如果我使用Trim,我对字符串分配也有同样的问题。 我想我可以检查每个字符串,看看它是StartsWith(“”)还是EndsWith(“”)然后才修剪。 要么指出索引,要么计算每个字符串的长度并传递给string.Compare覆盖 public static int Compare ( string strA, int indexA, string strB, int indexB, int length, StringComparison comparisonType ) 但是这看起来相当混乱,如果我不为两个字符串上的尾随和前导空白的每个组合制作一个非常大的if-else语句,我可能不得不使用一些整数…所以任何优雅解决方案的想法? 这是我目前的提议: public bool IsEqual(string a, string b) { return (string.Compare(a, b, StringComparison.OrdinalIgnoreCase) == 0); } public bool IsTrimEqual(string a, string b) { if (Math.Abs(a.Length- b.Length) > 2 ) // […]

C#:关于ToUpper()和ToLower()的困惑

如果我做这样的事…… String myVar = “in”; if(myVar.ToUpper() == “in”) { //do something } 这不会进入“if”阻止..正确吗? 要么 它是否会检查“in”和“IN”中的内容并执行其中的内容if if? 如果是这样,为什么呢? 是不是应该跳过“if”块中的内容? 同样的困惑也是关于ToLower() 编辑 :所以要检查两种情况,我需要写: if((myVar.ToUpper().Equals(“in”))&&(myVar.Equals(“in”))) 像这样……好吗?

C# – 比较字符串相似性

可能重复: 是否有为C#编写的模糊搜索或字符串相似性函数库? 比较2个字符串以查看它们有多相似的最佳方法是什么? 例子: My String My String With Extra Words 要么 My String My Slightly Different String 我要找的是确定每对中第一个和第二个字符串的相似程度。 我想对比较得分,如果字符串足够相似,我会认为它们是匹配对。 有没有一种很好的方法在C#中做到这一点?