草庐IT

c++ - 如何在 Windows 中比较可能的替代文件名?

不幸的是,Windows中的目录/文件名不区分大小写。当我比较文本(来自用户的输入)和目录名称(来自CFileFind)时,我如何检查它们是否表示相同的目录?例如C:\PIPPO\和C:\Pippo\是同一个目录,而C:\Pippò\是不同的(最后一个有口音)。我正在尝试:if(CompareString(LOCALE_INVARIANT,NORM_IGNORECASE,q,-1,data_from_CfileFind->txt.GetBuffer(),-1)==CSTR_EQUAL)(q是[partof]用户输入)它“有点像”,因为它识别相同目录的罗马、希腊和西里尔字母的大小写变体,

在多平台上比较 2 struct tm

假设我有两个structtm我需要在Linux、Linux内核和Windows中比较它们。进行跨平台检查的最佳方法是什么?我所说的“比较”是指找出哪个日期更大。例如-我现在获取日期并将其与某个帐户过期的日期进行比较。 最佳答案 您可以使用mktime将它们转换为time_t,然后使用difftime计算差异:time_tt1=mktime(tm1);time_tt2=mktime(tm2);doublediffSecs=difftime(t1,t2);//Ifpositive,thentm1>tm2

c# - 如何比较 .NET 中的 SQL 时间戳?

我已经映射了EntityFramework实体。SQLServer2008中的每个表都包含映射为字节数组的时间戳列。数组的长度始终为8。现在我需要在.NET中比较时间戳值。我有两个解决方案,但我不知道哪个更好?将其作为数组进行比较。当第一对字节不同时返回false。将字节数组转换为long,比较long。哪种解决方案更好?或者还有其他解决办法吗? 最佳答案 我们通过将它们作为字节数组进行比较来实现。对我们来说效果很好。 关于c#-如何比较.NET中的SQL时间戳?,我们在StackOve

c# - 如何在 C# 中比较 XML 文件?

我知道有很多这样的问题,但我找不到满足我需要的答复。我必须编写一个比较XML文件的应用程序:将有2种类型的比较,第一种用于2个文件,列出所有差异,第二种用于多个XML文件,列出所有与平均值的差异。我正在寻找某种类、库或API来帮助我完成这项任务。你能提出一些解决方案吗?然而,我不知道我应该使用DOM还是Xpath。有什么建议么?编辑:好的,所以我一直在尝试使用XmlDiff工具来完成这项任务,但是对于多个Xml文件来说,解决这个问题是很有问题的-我不知道如何使用这个XmlDiffDiagram来解决例如50个Xml文件之间的差异.使用LINQ会更好吗? 最佳

c# - 检查对象是否为 null 并在同一个 if 语句中比较对象的属性值是否安全?

请参阅线程标题。我是否可以安全地执行类似的操作而不用担心NullReferenceException,或者不能保证这些bool表达式将从左到右求值?//canthisthrowanNRE?if(obj==null||obj.property==value){//dosomething} 最佳答案 他们将从左到右进行评估,保证。所以是的,它是安全的。Theconditional-ORoperator(||)performsalogical-ORofitsbooloperands,butonlyevaluatesitssecondope

c# - 在 C# 中比较 2 个整数列表/数组的最佳方法是什么

我想比较2个整数列表是否相等。如果这样更容易,我很乐意提前对它们进行分类。这是我想比较的两件事的例子。对于以下内容,我希望结果为真。注意:列表中永远不会有任何重复项(没有重复值)Listlist=newList(){1,4,6,7};int[]myArray=newint[]{1,6,7,4}; 最佳答案 在比较列表时,相等对您意味着什么?您是否关心列表是否完全相同......相同顺序的相同项目?或者只包含相同的一组值,而不考虑顺序。如果您确实想要验证列表是否包含相同顺序的相同值序列,您可以使用LINQ中的SequenceEqual

C#:CompareTo(String) 和 Equals(String) 有什么区别?

这个问题在这里已经有了答案:DifferencesinstringcomparemethodsinC#(11个答案)关闭7年前。我想知道,在C#中比较字符串时?哪种方法适合使用,为什么?CompareTo()还是Equals()?

c# - 在 C# 中比较动态对象

比较两个任意动态对象是否相等的最佳方法是什么?例如这两个对象。即dynamicobj1=newExpandoObject();obj1.Name="Marcus";obj1.Age=39;obj1.LengthInMeters=1.96;dynamicobj2=AMethodReturningADynamic();obj2.Name="Marcus";obj2.Age=39;obj2.LengthInMeters=1.96;Assert.AreEqual(obj1,obj2);//?或者有没有办法将实际属性及其值作为列表获取?例如,要从动态类型创建ExpandoObject?

c# - 在抛出 AssertFailedException 的单元测试中比较两个数组

我正在为准备好的代码编写单元测试,但在尝试运行其中一个测试时收到意外的AssertFailedException。这是他:[TestMethod]publicvoidTestPositionGetter(){testPlayer.Position=newint[]{1,3};int[]expectedPosition=testPlayer.Position;Assert.AreEqual(expectedPosition,testPlayer.Position);}这是我要测试的Player类中的Position属性:publicint[]Position{get{returnnewi

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

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