Словарь, использующий класс в качестве параметра и ключа, CRUD C# - PullRequest
0 голосов
/ 20 марта 2020

Так что мне нужно создать структуру данных с одним ключом , суб-ключом и значением . И метод для добавления ключа, дополнительного ключа и значения.

Ключ уникален и может иметь несколько вспомогательных ключей .

Суб ключ является уникальными в контексте внутри Ключ и может иметь несколько значений .

Значения являются уникальными в контексте Sub Key .

Первая структура данных, которая приходит к моему ум был словарь (время выполнения важно для задания). Затем я создал следующий словарь.

    public class NewCollection : IHoplonCollection
{
    class SubIndexAndValue
    {
        public int subIndex;
        public List<string> Value = new List<string>();
    }

    class DataStructure : IComparable<DataStructure>
    {
        public string Key;
        public List<SubIndexAndValue> subIndexValue = new List<SubIndexAndValue>();

        public int CompareTo(DataStructure other)
        {
            if (Key.CompareTo(other.Key) > 0)
            {
                return 1;
            }else if (Key.CompareTo(other.Key) < 0)
            {
                return -1;
            }else
            {
                return 0;
            }
        }
    }

    SortedDictionary<DataStructure, SubIndexAndValue> colList = new SortedDictionary<DataStructure, SubIndexAndValue>();

    public bool Add(string Key, int subIndex, string Value)
    {
        return true;
    }

Итак, как вы можете видеть, метод Add получит Key , Sub Key и Значение .

В будущем мне нужно будет сделать CRUD и отсортировать данные.

Мой вопрос, как мне справиться с этим? Как я могу использовать такой метод, как Contains (), чтобы проверить, было ли одно значение (строка) уже вставлено в словарь с использованием этой структуры данных? Или, может быть, есть более простой способ сделать это.

Спасибо.

1 Ответ

0 голосов
/ 20 марта 2020

Я думаю, что комбинация встроенных структур может решить предложенную структуру данных:

Dictionary<string,Dictionary<int,HashSet<string>>>

Первый словарь содержит список пар ключ-значение string ( Ключ ) ), и для каждого из них значением является другой словарь, ключом которого является уникальный string ( SubKey ), а значением является HashSet<string>, список уникальных строк.

...