Как получить список ключей в словаре?

MemoryStream.GetBuffer() по сравнению с MemoryStream.ToArray(). Бывшие возвраты целый буфер, последний просто используемая часть. Фу.

143
задан Peter Mortensen 23 March 2016 в 10:11
поделиться

5 ответов

List<string> keyList = new List<string>(this.yourDictionary.Keys);
285
ответ дан 23 November 2019 в 22:56
поделиться

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

ArrayList lList = new ArrayList(lDict.Keys);
foreach (object lKey in lList)
{
  if (<your condition here>)
  {
    lDict.Remove(lKey);
  }
}

Если вы можете использовать общие списки и словари вместо ArrayList, то я бы это сделал, однако приведенное выше должно работать.

3
ответ дан 23 November 2019 в 22:56
поделиться

Ответ Марка Гравелла должен сработать для вас. myDictionary.Keys возвращает объект, который реализует ICollection , IEnumerable и их неуниверсальные аналоги.

Я просто хотел добавить что, если вы планируете также получить доступ к значению, вы можете прокручивать словарь следующим образом (измененный пример):

Dictionary<string, int> data = new Dictionary<string, int>();
data.Add("abc", 123);
data.Add("def", 456);

foreach (KeyValuePair<string, int> item in data)
{
    Console.WriteLine(item.Key + ": " + item.Value);
}
12
ответ дан 23 November 2019 в 22:56
поделиться

Вы сможете просто посмотреть на .Keys :

    Dictionary<string, int> data = new Dictionary<string, int>();
    data.Add("abc", 123);
    data.Add("def", 456);
    foreach (string key in data.Keys)
    {
        Console.WriteLine(key);
    }
67
ответ дан 23 November 2019 в 22:56
поделиться

Или вот так:

List< KeyValuePair< string, int > > theList =
    new List< KeyValuePair< string,int > >(this.yourDictionary);

for ( int i = 0; i < theList.Count; i++)
{ 
  // the key
  Console.WriteLine(theList[i].Key);
}
0
ответ дан 23 November 2019 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: