2014-10-16 2 views
-4

Я использую следующий код, чтобы получить Положение "E"Получение позиции символа в C#

string a = "ABCDEFGHIJKLM"; 
int position = 0; 
for (int i = 0; i < a.Length; i++) 
{ 
    if (a.Substring(i, 1) == "E") 
    { 
     position = i +1; 
     break; 
    } 
} 

выше код будет возвращать position = 5,

Я новичок в C# мой вопрос есть любой быстрый путь без петли к сделать это,

+2

Странная вещь, что дубликат имеет подобная строка, тот же символ и даже тот же OP. С тех пор вы многому не научились, не так ли? –

+0

1k rep, но нет усилий поиска, тот же вопрос отправлен 10 месяцев назад, ... это не так, как чувак ... – xmashallax

+1

@xmashallax: ОП сам задал этот вопрос. Это смешно. Поэтому ему просто пришлось искать в его памяти. –

ответ

5

Вы можете использовать String.IndexOf:

int position = a.IndexOf("E"); 

Он возвращает первый индекс символа (или подстроки) или -1, если его там нет.

1

Single/Первая Происшествие


С помощью IndexOf вернет индекс позиции.

using System; 

class Program 
{ 
    static void Main() 
    { 
    // A. 
    // The input string. 
    const string s = "ABCDEFGHIJKLM"; 

    // B. 
    // Test with IndexOf. 
    if (int i = s.IndexOf("E") != -1) 
    { 
     Console.Write("string contains 'E' at position of "+i); 
    } 
    Console.ReadLine(); 
    } 
} 

Это выведет

"строка содержит 'E' в положении 4".

Для быстрого/лучшего понимания:

  1. Вы можете узнать больше here
  2. или here

IndexOf получает вас позицию символа (-1 будет возвращаются в противном случае)


Несколько Проявления:


Если символьное значение появляется несколько раз в течение вашей строки, вы можете использовать:

var foundIndexes = new List<int>(); 

for (int i = 0; i < myStr.Length; i++) 

    if (myStr[i] == 'a') foundIndexes.Add(i); 

Найдено here

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