Tag: 比较

等于int和short c#返回false

考虑以下代码: static int x2 = 10; public static void Main() { short y = 10; Console.WriteLine(y.Equals(x2)); //False Console.Read(); } 为什么y.Equals(x2)返回false ?

C# – 两个大字符串数组的模糊比较

我需要在B中找到“部分”存在于A中的所有字符串。 B = [ “Hello World!”, “Hello Stack Overflow!”, “Foo Bar!”, “Food is nice…”, “Hej” ] A = [ “World”, “Foo” ] C = B.FuzzyCompare(A) // C = [ “Hello World!”, “Foo Bar!”, “Food is nice…” ] 我一直在研究使用Levenshtein Distance Algorithm来解决问题的“模糊”部分,以及迭代的LINQ 。 但是,A * B通常会导致超过15亿次比较。 我该怎么办呢? 有没有办法快速“几乎比较”两个字符串列表?

比较两位小数

我想比较c#中的两个小数,但有一些误差。 任何人都可以指出以下代码的问题。 请注意,我对6个小数位感兴趣,之后我可以忽略这些值。 var valOne = decimal.Round(valueOne, 6); var valTwo = decimal.Round(valueTwo, 6); var difference = Math.Abs(valOne – valTwo); if (difference > 0.0000001m) { Console.WriteLine(“Values are different”); } else { Console.WriteLine(“Values are equal”); } 或者,还有更好的方法。

找到两个字符串之间的不同字

我有很多短语,例如 “Nola jumped off the cliff” “Loroy jumped off the cliff” “Nola jumped off the couch” “Leroy lept off the couch” 我需要找到一个不同单词的短语中的每个点,并将该单词添加到节点,该节点是可以在短语中的该位置使用的单词列表。 所以我们最终会结束。 “Node1(1) Node2(1) off the Node3(1)” “Node1(2) Node2(1) off the Node3(1)” …etc 其中节点1表示名称列表(Nola,Leroy),node2表示动作列表(跳跃,lept),node3最终表示位置列表(悬崖,沙发) 我们的想法是获取一个短语列表,让它自动创建节点,并用短语中可以在该节点上使用的单词填充它。 那么,我将如何生成短语节点列表? 我无法弄清楚如何比较两个句子,看看它们是否完全相同,减去一个单词。 第二,一旦我设置了节点,比较所有节点组合以获得新匹配的最佳方法是什么? (希望有道理)

使用LINQ比较查询中的日期

我有一个Linq查询返回到var类型myQry var myQry = from ….. 这是一个很大的linq返回我需要进一步过滤的所有记录。 在我的一个if条件中,我有一个像这样运行的filter来检查日期。 我需要检查名称是否包含输入的名称,并确切地匹配生日。 我尝试了这个编译和运行,但没有正常工作 myQry.Where(x => x.FirstName.Contains(strName) && DateTime.Compare( x.BirthDt, searchDt)>=0).ToList() 然后我尝试了这个,它抛出exception“DbArithmeticExpression参数必须有一个数字公共类型” myQry.Where(x => x.FirstName.Contains(strName) && (x.BirthDt- searchDt).Days == 0).ToList(); 对于我在查询中使用where子句时的这种情况,进行日期比较的最佳方法是什么? LinQ查询的where子句中不允许进行哪些操作? 谢谢你的时间…

如何比较人物(尊重文化)

对于我在这个问题中的答案,我必须比较两个字符。 我认为普通的char.CompareTo()方法允许我指定CultureInfo ,但事实并非如此。 所以我的问题是: 如何比较两个字符并指定CultureInfo进行比较?

运算符'<'不能应用于'decimal'和'double'类型的操作数

我正在尝试提出一个程序来计算用户输入的分数。 我也试图设置用户输入的高低的限制(即0 = 100)。 但是当我使用十进制时,它一直给我这个错误,“运算符'<'不能应用于'decimal'和'double'类型的操作数” using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Grade_Program { class Program { static void Main(string[] args) { string First; string Last; First = “Cristiano”; Last = ” Ronaldo”; Console.Write(“Please enter student name : “); Console.WriteLine(First + Last ); Console.WriteLine(” “); Console.WriteLine(“*************NOTE**********************************************”); Console.WriteLine(“*** Be sure to include […]

比较DateTimes:DateTime.Compare()与关系运算符

以下是比较两个DateTimes的两种方法: DateTime now = DateTime.Now; DateTime then = new DateTime(2008, 8, 1); // Method 1 if (DateTime.Compare(then, now) < 0) // … // Method 2 if (then < now) // … .Compare返回一个整数(-1,0,1),指示第一个实例是否早于,等于或晚于第二个实例。 我的问题是,当我可以直接使用关系运算符( < , <= , == , >= , > )时,为什么我会使用.Compare ? 在我看来,使用.Compare ,无论如何我需要使用关系运算符(至少在上面的例子中;或者我可以创建一个检查案例-1,0和1的switch语句)。 什么情况更喜欢或需要使用DateTime.Compare() ?

比较两个相似但不相同的数据表

我有两个数据表,它们有一个共同的主键列,但是不同的结构,因为它们是从不同的表创建的。 我想检查数据表B中与A相比缺少哪些行,目的是将缺少的行添加到数据库中。 我已经看过像这样的问题,它提供了很好的答案,但数据表通常被认为是相同的。 因为我想获得一个用于插入的新行列表,有没有办法可以在不迭代行并检查PK的情况下执行此操作? 如果我没弄错的话, Merge将保留旧行,我不想重新提交到数据库。 两个表只有几十行,最多几百行。 无论如何,逐行进行计算的命中率是否可以忽略不计? 编辑:两个源表位于不同的数据库/服务器上,因此我无法轻松地在SQL中进行比较。 无论如何,我更喜欢使用消费应用程序,因为我可能会在完成之前添加更多行处理。

比较类型的VALUE和REFERENCE

我知道有很多方法可以比较C#中的VALUE和REFERENCES,但是当你尝试比较VALUE或REFERENCE时,我仍然对什么类型执行什么感到困惑。 字符串示例: string str = “hello”; string str2 = “hello”; if (str == str2) { Console.WriteLine(“Something”); } // Is this a comparison of value? if (str.Equals(str2)) { Console.WriteLine(“Something”); } // Is this a comparison of value? string.ReferenceEquals(str, str2); // Comparison of reference (True) Console.WriteLine((object)str1 == (object)str2); // Comparison of reference (True)