Словарь.NET как свойство

Я только что выпустил плагин Xo для Angular, который призван стать основой для WordPress и Angular. Должны соответствовать всем вашим потребностям выше.

https://wordpress.org/plugins/xo-for-angular/

В настоящее время он находится в стадии бета-тестирования и будет признателен за любые отзывы!

Основные понятия :

  • Ваш Angular проект существует как тема в WordPress.
  • Угловые шаблоны (модули), которые можно выбрать для страниц и постов.
  • Динамическая маршрутизация страниц, сообщений и другого контента, созданного в WordPress.

Документация (работа в процессе): https://angularxo.io/

Плагин GitHub: https://github.com/WarriorRocker/angular -xo-core

Пример темы: https://github.com/WarriorRocker/angular-xo-material

Дайте мне знать, что вы думаете, спасибо!

26
задан John Saunders 18 March 2010 в 18:45
поделиться

7 ответов

Вот быстрый пример

class Example {
  private Dictionary<int,string> _map;
  public Dictionary<int,string> Map { get { return _map; } }
  public Example() { _map = new Dictionary<int,string>(); }
}

Некоторые варианты использования

var e = new Example();
e.Map[42] = "The Answer";
38
ответ дан 28 November 2019 в 06:23
поделиться

С тех пор .net 4.6 можно также определить Словарь как это:

private Dictionary<string,int> Values => new Dictionary<string, int>()
{
    { "Value_1", 1},
    { "Value_2", 2},
    { "Value_3", 3},
};

Это звонило участники с телом выражения !

0
ответ дан 28 November 2019 в 06:23
поделиться

пример кода:

public class MyClass
{
  public MyClass()
  {
    TheDictionary = new Dictionary<int, string>();
  }

  // private setter so no-one can change the dictionary itself
  // so create it in the constructor
  public IDictionary<int, string> TheDictionary { get; private set; }
}

пример использования:

MyClass mc = new MyClass();

mc.TheDictionary.Add(1, "one");
mc.TheDictionary.Add(2, "two");
mc.TheDictionary.Add(3, "three");

Console.WriteLine(mc.TheDictionary[2]);

EDIT

Если вы используете C # версии 6 или более поздней, вы также можете использовать это:

public class MyClass
{
  // you don't need a constructor for this feature

  // no (public) setter so no-one can change the dictionary itself
  // it is set when creating a new instance of MyClass
  public IDictionary<int, string> TheDictionary { get; } = new Dictionary<int, string>();
}
17
ответ дан 28 November 2019 в 06:23
поделиться

Вы также можете изучить индексаторы . (официальная документация MSDN здесь )

class MyClass
{
    private Dictionary<string, string> data = new Dictionary<string, string>();

    public MyClass()
    {
        data.Add("Turing, Alan", "Alan Mathison Turing, OBE, FRS (pronounced /ˈtjʊ(ə)rɪŋ/) (23 June, 1912 – 7 June, 1954) was a British mathematician, logician, cryptanalyst and computer scientist.")
        //Courtesy of [Wikipedia][3]. Used without permission
    }

    public string this [string index]
    {
        get
        {
            return data[index];
        }
    }
}

Затем, после того как вы заполнили словарь внутренне, вы можете получить доступ к его информации, выбрав

MyClass myExample = new MyClass();

string turingBio = myExample["Turing, Alan"];

EDIT

Очевидно, это нужно использовать осторожно, потому что MyClass НЕ является словарем, и вы не можете использовать в нем какие-либо словарные методы, если не реализуете их для класса-оболочки. Но индексаторы - отличный инструмент в определенных ситуациях.

12
ответ дан 28 November 2019 в 06:23
поделиться

Пример ...

public class Example
{
    public Dictionary<Int32, String> DictionaryProperty
    {
        get; set;
    }

    public Example()
    {
        DictionaryProperty = new Dictionary<int, string>();
    }
}

public class MainForm
{
    public MainForm()
    {
        Example e = new Example();

        e.DictionaryProperty.Add(1, "Hello");
        e.DictionaryProperty.Remove(1);
    }
}
1
ответ дан 28 November 2019 в 06:23
поделиться

Вы имеете в виду, как мешок свойств?

http://www.codeproject.com/KB/recipes/propertybag.aspx

0
ответ дан 28 November 2019 в 06:23
поделиться

Еще один пример использования словаря в качестве статического свойства с использованием только аксессора get:

  private static Dictionary <string, string> dict = new  Dictionary   <string,string>(){            
            {"Design Matrix", "Design Case"},
            {"N/A", "Other"}
    };


    public static Dictionary <string, string> Dict
    {
        get { return dict}
    }          

Эта структура может быть использована для замены значений.

2
ответ дан 28 November 2019 в 06:23
поделиться
Другие вопросы по тегам:

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