如何比较C#.net中分为3组的字符串?

时间:2016-03-31 11:45:05

标签: c# windows-applications

我想比较组中的3个数字。

string first = "1.0.1";
string second = "1.0.0";
string third = "2.1.0";
string forth = "1.1.0";

这些都是版本。我希望从中获得最高版本。目前第三名=" 2.1.0"是最高的。

有人能建议我最短路吗?或者我应该进行自定义编码?

3 个答案:

答案 0 :(得分:5)

尝试专门为此目的而设计的Version类,例如:

 string first = "1.0.1";
 string second = "1.0.0"; 

 if (new Version(first) > new Version(second)) {
    ...
 }

在你的情况下

  // "2.1.0"
  String biggest = new String[] { 
      first, second, third, forth }
    .Max(item => new Version(item))
    .ToString();

答案 1 :(得分:3)

为什么不使用Version类型?这实现了IComparable接口,因此如果你有一个集合,你可以使用LINQ表达式来获得最大的值。

Version first = new Version(1, 0, 1);
Version second = new Version(1, 0, 0);
Version third = new Version(2, 1, 0);
Version fourth = new Version(1, 1, 0);

List<Version> versions = new List<Version>() { first, second, third, fourth };
Version maximumVersion = versions.Max(); // returns the 'third' object

答案 2 :(得分:2)

您可以使用Version类来比较版本以找到最高版本。

例如

List<Version> versions = new List<Version>();
versions.Add(new Version("1.0.1"));
versions.Add(Version("1.0.0"));
versions.Add(Version("2.1.0"));
versions.Add(Version("1.1.0"));

现在您可以对列表进行排序,并获得最高值:

versions.Sort();
var highestVersion = versions.First();