2015-01-25 4 views
-3

У меня есть строка значений, выглядит следующим образом:Обратный порядок разделенных запятыми значений

strSubjectIDs = "20,19,18,17,16,15"; 

Есть ли вообще отменить этот приказ строки strSubjectIDs так, что идентификаторы выглядеть следующим образом:

"15,16,17,18,19,20" 
+2

да есть способ .. и вы можете сделать это несколько разных способов. Google работает чудеса, если их правильно использовать ...! – MethodMan

ответ

0

Это стандартный способ промышленности поменять местами элементы запятой строку с разделителями:

 string strSubjectIDs = "20,19,18,17,16,15"; 
     Console.WriteLine(strSubjectIDs); 

     Queue<Char> q = new Queue<Char>(); 
     Stack<Queue<Char>> s = new Stack<Queue<Char>>(); 
     foreach(Char c in (strSubjectIDs.Trim(',') + ",").ToCharArray()) 
     { 
      q.Enqueue(c); 
      if (c == ',') 
      { 
       s.Push(q); 
       q = new Queue<char>(); 
      } 
     } 
     while(s.Count > 0) 
     { 
      Queue<Char> t = s.Pop(); 
      while(t.Count > 0) 
      { 
       q.Enqueue(t.Dequeue()); 
      } 
     } 
     strSubjectIDs = new String(q.ToArray()).Trim(','); 
     Console.WriteLine(strSubjectIDs); 

Да, определенно; спросите любого профессионального программиста: любой алгоритм, не имеющий стека и/или очередь, просто не стоит использовать.

+1

Lol overkill – SimpleVar

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