【问题标题】:compare two string value [closed]比较两个字符串值
【发布时间】:2012-04-23 12:57:07
【问题描述】:

我想比较两个字符串值​​,像这样:

if (lblCapacity.Text <= lblSizeFile.Text)

我该怎么做?

【问题讨论】:

  • 文本属性是数值?你可以使用Int32.Parse
  • &lt;= 在这种情况下是什么意思?
  • @Oded :我想相对于字典排序小于或等于
  • @DonCallisto - 我不想假设,这就是我问 OP 的原因。
  • 同意,这实际上是一个很好的问题如果 OP 定义了“小于”的含义。如果没有它,我们可能会谈论字母、长度、大写字母与小写字母或其他内容。太糟糕了,OP 从来没有回来澄清。

标签: c# string compare


【解决方案1】:

我假设您正在比较 lexicographical order 中的字符串,在这种情况下您可以使用静态方法 String.Compare。

例如,您有两个字符串 str1 和 str2,并且您想查看 str1 在字母表中是否位于 str2 之前。您的代码将如下所示:

string str1 = "A string";
string str2 = "Some other string";
if(String.Compare(str1,str2) < 0)
{
   // str1 is less than str2
   Console.WriteLine("Yes");
}
else if(String.Compare(str1,str2) == 0)
{
   // str1 equals str2
   Console.WriteLine("Equals");
}
else
{
   // str11 is greater than str2, and String.Compare returned a value greater than 0
   Console.WriteLine("No");
}

上面的代码会返回yes。 String.Compare 有许多重载版本,包括一些可以忽略大小写或使用格式字符串的版本。查看String.Compare。

【讨论】:

  • 当然我忘了说 Control.Text 属性返回一个字符串,这就是我使用 String.Compare 的原因。
  • 对于不熟悉字典顺序的读者,请注意,这意味着“9”将大于“13246”,但“13”小于“13246”。
【解决方案2】:
int capacity;
int fileSize;

if (!int.TryParse(lblCapacity.Text, out capacity) //handle parsing problem;
if (!int.TryParse(lblSizeFile.Text, out fileSize) //handle parsing problem;

if (capacity <= fileSize) //... do something.

【讨论】:

  • +1,如果有人为我的商店编写代码,这就是我所需要的
【解决方案3】:

如果文本框中有整数,那么,

int capacity;
int fileSize;

if(Int32.TryParse(lblCapacity.Text,out capacity) && 
   Int32.TryParse(lblSizeFile.Text,out fileSize))
{
    if(capacity<=fileSize)
    {
        //do something
    }
}

【讨论】:

    【解决方案4】:

    标签中似乎包含数字。那你可以试试Int32.Parse:

    if (int.Parse(lblCapacity.Text) <= int.Parse(lblSizeFile.Text))
    

    当然,您可能想要添加一些错误检查(查看Int32.TryParse 并可能将解析的 int 值存储在一些变量中,但这是基本概念。

    【讨论】:

      【解决方案5】:

      比较是你需要的。

      int c = string.Compare(a , b);
      

      【讨论】:

      • 当你想要"11" &lt; "2" == true。
      • 这个问题没有表明它是一个数值
      【解决方案6】:

      使用Int32.Parse、Int32.TryParse 或其他等效项。然后,您可以对这些值进行数值比较。

      【讨论】:

        猜你喜欢
        • 2013-03-23
        • 2013-10-28
        • 2013-09-27
        • 1970-01-01
        • 1970-01-01
        • 2020-09-05
        • 2017-07-18
        • 1970-01-01
        相关资源
        最近更新 更多