2012-04-23 8 views
2

Я хотел бы сравнить два строковых значения, как это:сравнить два значения строки

if (lblCapacity.Text <= lblSizeFile.Text) 

Как я могу это сделать?

+3

Свойства текста являются числовыми значениями? Вы можете использовать 'Int32.Parse' – Siege

+2

Что означает' <= 'в этом контексте? – Oded

+1

@Oded: я полагаю, что меньше или равно относительно лексикографической сортировки – DonCallisto

ответ

0

Использовать Int32.Parse, Int32.TryParse или другим эквивалентом. Вы можете затем численно сравнить эти значения.

0

Похоже, что этикетки содержат цифры. Тогда вы могли бы попробовать Int32.Parse:

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

Конечно, вы можете добавить проверки некоторые ошибки (смотрите на Int32.TryParse и, возможно, сохранить разобранные Int значения некоторых переменных, но это основная концепция

2

Если. у вас есть целые числа в текстовом поле тогда,

int capacity; 
int fileSize; 

if(Int32.TryParse(lblCapacity.Text,out capacity) && 
    Int32.TryParse(lblSizeFile.Text,out fileSize)) 
{ 
    if(capacity<=fileSize) 
    { 
     //do something 
    } 
} 
4
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. 
+0

+1, это то, что я буду требовать, если кто-то напишет код для моего магазина – Steve

0

Сравните это то, что вам нужно.

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

Если вы хотите '" 11 "<" 2 "== true'. –

+0

Вопрос не указывает его числовое значение – Yeshvanthni

17

Я предполагаю, что вы сравниваете строки в lexicographical order, и в этом случае вы можете использовать Static-метод 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"); 
} 

Этот вышеприведенный код вернет да. Существует много перегруженных версий String.Compare, включая некоторые, где вы можете игнорировать регистр, или использовать строки форматирования. Выезд String.Compare.

+0

Конечно, я забыл упомянуть, что свойство Control.Text возвращает строку, поэтому String.Compare - это то, что я использовал. –

Смежные вопросы