如何在 C# 中比较两个版本?

Posted

技术标签:

【中文标题】如何在 C# 中比较两个版本?【英文标题】:How can I compare two version in C#? 【发布时间】:2021-11-30 04:27:01 【问题描述】:

我使用C# 语言来比较两个版本。如何比较两个版本?我使用了下面的代码,但我很困惑它是如何工作的。当我尝试以下代码时:

 var tem = "3.10.1".CompareTo("3.9.0"); // returns -1

var tem1 = "4.0.1".CompareTo("3.9.0"); // returns 1

tem 变量也需要 1 个结果。有人可以指导我吗?

【问题讨论】:

您正在进行词汇字符串比较,而不是正确比较两个版本。将它们解析成一个知道如何比较版本信息的类。 对于字符串比较,10 在 2 之前,因为 1 小于 2。将字符串拆分为组件,将这些组件转换为数字,然后比较每个组中的数字。 也许VersionInfo-class 就是你要找的东西 int tem = Version.Parse("3.10.1").CompareTo(Version.Parse("3.9.0")); 【参考方案1】:

你应该比较Versions,而不是Strings:

 var tem = Version.Parse("3.10.1").CompareTo(Version.Parse("3.9.0"));

 var tem1 = Version.Parse("4.0.1").CompareTo(Version.Parse("3.9.0")); 

【讨论】:

以上是关于如何在 C# 中比较两个版本?的主要内容,如果未能解决你的问题,请参考以下文章

C#代码中如何比较两个日期的大小?

在 c# 中比较两个 pdf 文件的最佳方法是啥?

sourcetree 如何让任意两个版本中同一个文件进行比较

如何使用 C# 比较两个 Json 对象

如何仅获取 c# 上下文中两个 xml 文件的更改?

如何在 Notepad++ 中比较两个文件