Получить все ключи в хэш-таблице в строку - PullRequest
2 голосов
/ 04 августа 2010

Язык кодирования - C # 3.0
Какой самый оптимальный метод для извлечения всех ключей хеш-таблицы в строку, разделенную разделителем ","
Является ли цикл for или цикл foreach единственной опцией?

Обновление: ключи уже являются строками

С уважением,
naveenj

Ответы [ 3 ]

7 голосов
/ 04 августа 2010

Вы действительно имеете в виду неуниверсальный Hashtable?Вы можете использовать LINQ, предполагая, что это доступно для вас:

string keys = string.Join(",", table.Keys.Cast<object>()
                                         .Select(x => x.ToString())
                                         .ToArray());

Могут быть более быстрые способы, но я бы пошел по пути ради удобочитаемости.Микрооптимизация возможна только тогда, когда вы доказали, что это узкое место.

5 голосов
/ 04 августа 2010

Вы также можете использовать IDictionaryEnumerator:

IDictionaryEnumerator enum = table.GetEnumerator();
while (enum.MoveNext())
{
   text += enum.Key + ", ";
   text += enum.Value + "\n";
}
0 голосов
/ 26 ноября 2018
pravice.Keys.OfType<string>().ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...