Как создать все возможные 3-символьные строки в C #? - PullRequest
0 голосов
/ 28 августа 2009

Вопрос:

Как создать список всех возможных 3-символьных строк в C #?

Для определения, это в пределах области 64 10 и 90 10

Ответы [ 2 ]

26 голосов
/ 28 августа 2009
IEnumerable<string> GetAllStrings(params char[] inputCharacterSet) {
    return from n in inputCharacterSet
           from m in inputCharacterSet
           from k in inputCharacterSet
           select new string(new [] { n, m, k });
}
7 голосов
/ 28 августа 2009
public IEnumerable<String> Get3CharStrings(char[] domain)
{
    foreach(char a in domain)
     foreach(char b in domain)
      foreach(char c in domain)
       yield return "" + a + b + c;
}

EDIT: Это на самом деле немного медленнее, чем решение LINQ, опубликованное Mehrdad, хотя большая часть различий заключается в использовании return "" + a + b + c вместо return new string(new[] { a, b, c}).

Фактическая статистика (алфавит из 26 символов, 10 000 итераций:

Код Мехрдада: 72,983 секунды
Мой код: 127,205 секунд
Мой код с оператором возврата Mehrdad: 75,055 секунд

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...