2017-01-24 6 views
-2

У меня есть строка, какКак извлечь строку, которая присутствует перед «.lower» в C#?

string variable1="EXAMPLE"; 

и потом где-то в моем коде, я использую как

Console.WriteLine(variable1.ToLower()); 

я могу использовать variable1.ToLower() несколько раз. Но теперь я хочу сохранить переменное имя, которое преобразуется в Lower в отдельной новой переменной, то есть мне нужно извлечь variable1 из строки Console.WriteLine(variable1.ToLower()); и сохранить его в строковой переменной. Это возможно?

Моя главная цель состоит в том, что, если мой код имеет variable1.ToLower() в очень многих местах, то я должен запустить приложение, которое заменяет все variable1.ToLower() на новую строку, которая имеет значение variable1.ToLower(). Обратите внимание, что использование слишком большого числа variable1.ToLower() в коде является нарушением. Поэтому я просто создаю новую переменную, чтобы сохранить значение variable1.ToLower() и использовать эту новую переменную вместо variable1.ToLower() на каждом месте.

+0

Я не думаю, что 'ToLower()' изменяет исходную строку, это создаст новый экземпляр. try 'string lowerCaseString = variable1.ToLower()' – Alex

+0

Я думаю, что лучше всего сохранить строку в общедоступной переменной, чем получить ее из 'Console.WriteLine (variable1.ToLower());' – Hexxed

+2

Вы хотите извлечь литеральный текст ' variable1' из этого выражения? Похоже на вопрос XY. Какая у вас конечная цель? Зачем вам нужно имя переменной? – Rob

ответ

1

Предполагая, что я понимаю вопрос, почему бы просто не сделать это?

var lower = variable1.ToLower(); 
Console.WriteLine(lower); 
+0

Слишком много строк в моем коде, и мне нужно записать только строку, которая преобразуется в нижний регистр. Могу ли я извлечь строку или фразу, которая присутствует перед '.ToLower' в строке? – Vishwaroopa

+1

Думаю, я не понимаю вопроса в конце концов. Что вы хотите сделать именно так? какова ваша цель? –

1

String.ToLower создает копию оригинальной строки. Поэтому исходная строка не изменяется, и вы можете безопасно использовать ее в противном случае.

string variable1 = "EXAMPLE"; 
string lowerCaseVariable1 = variable1.ToLower(); 
Console.WriteLine($"Is still the original string: {variable1}"); 
Console.WriteLine($"Is the lower case copy of the original string: {lowerCaseVariable1}"); 

EDIT:

Если вы хотите, чтобы получить имя строки переменной вместо содержимого, вы можете использовать nameof (Link).

string variable1 = "EXAMPLE"; 
string nameOfVariable1 = nameof(variable1); 
Console.WriteLine(variable1.ToLower()); 
+0

Могу ли я извлечь строку или фразу, которая присутствует перед '.ToLower' в строке? Помогло ли Regex? – Vishwaroopa

+0

@Vishwaroopa: Вы имеете в виду что-то вроде 'nameof (variable1)' ([Ссылка] (https://msdn.microsoft.com/en-us/library/dn986596.aspx))? – gartenriese

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