Как я могу имитировать указатели, не используя их? - PullRequest
1 голос
/ 14 декабря 2011

У меня есть код C #, который работает в Azure и поддерживает веб, поэтому он должен быть безопасным.Это означает, что я не могу использовать указатели.

У меня есть эта проблема - моя структура данных представляет собой SortedList, где каждый узел является объектом X. Каждый объект X включает в себя массив, где каждая ячейка является другим SortedList объектаY. объекты типа X и Y имеют разные идентификаторы (поэтому, конечно, они доступны для поиска).

Теперь мне нужен способ непосредственно перейти к объекту Y, не просматривая его через объекты X, а затем объекты Y,(На объектах могут быть миллионы)

В C / C ++ я использовал бы список идентификаторов объектов Y с указателями на фактический объект.Таким образом, я бы искал объект только один раз.

Любые идеи, как это можно сделать в C #?

Спасибо!

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Просто используйте экземпляры в C #, как в своем решении C ++, но без указания указателя -> C ++.Все вещи, которые ссылаются на экземпляр типа класса в .NET, являются объектными ссылками, которые на самом деле являются указателями.Если вы создаете экземпляр типа в C # и назначаете его переменной и элементу массива и передаете его в качестве аргумента, все они являются указателями на одни и те же данные объекта в памяти.

Не нужно имитироватьуказатели в C #.Все уже указатель.

0 голосов
/ 14 декабря 2011

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

Перечитывая ваше объяснение вашей структуры данных, у меня есть этот вопрос.какой смысл в объекте X хранить объект Y, если ваш первоначальный план состоит в том, чтобы в любом случае хранить список всех Y отдельно?почему вы не можете хранить отсортированный список X, где каждый X содержит отсортированный список идентификаторов связанных объектов Y, и у вас есть отдельный отсортированный список объектов Y?если можно искать Y, не зная связанных с ним X, тогда вы создаете плохую структуру данных для хранения ваших объектов.Или вы можете создать базу данных и использовать SQL, чтобы получить то, что вам нужно, когда вам это нужно, что, если у вас есть миллионы записей, вероятно, является хорошим способом.

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