Возможные способы представления данных в памяти (.net) - PullRequest
0 голосов
/ 23 декабря 2010

Каковы возможные способы представления данных в памяти в .Net (или вообще)?
Было бы здорово, если бы данные можно было сортировать и искать по ключу (или нескольким ключам).Мы думаем использовать коллекции, массивы, список коллекций / массивов.Один объект может находиться в нескольких коллекциях (одна отсортированная asc, другая desc и т. Д.).

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

Спасибо

Ответы [ 3 ]

1 голос
/ 23 декабря 2010

Каковы возможные способы представления данных в памяти в .Net (или вообще)?

В .NET у вас есть два типа: типы значений и ссылочные типы , которые могут храниться в памяти по-разному. Кроме того, CLR несет ответственность за решение о том, как представлять данные в памяти, чтобы разработчик не беспокоился об этом.

Было бы здорово, если бы данные можно было сортировать и искать по ключу (или нескольким клавишам)

Вы можете взглянуть на класс Dictionary<TKey, TValue>. У вас также есть статические массивы , динамические списки , ... (этот список огромен)

0 голосов
/ 23 декабря 2010

Как говорит Грязь, это довольно общий вопрос, поэтому вам, возможно, понадобится немного конкретнее, чтобы получить точный ответ на то, что вы хотите.

В целом .NET предоставляет все «нормальные» типы коллекций(Словарь, список и т. Д.), Как и все другие хорошие языки.Кроме того, .NET предоставляет LINQ, который отлично подходит для сортировки и запроса коллекций.Например,

var array = new string[] {"banana", "pineapple", "apple", "cherry"};

// basic sorting
var sortedArray = array.OrderBy(a => a).;

foreach (var s in sortedArray)
{
    Console.WriteLine(s);
}

// filtering
var filteredArray = array.Where(a => a.Contains("apple"));

foreach (var f in filteredArray)
{
    Console.WriteLine(f);
}

LINQ будет работать с любой коллекцией.Для его использования вам потребуется .NET 3.5 или более поздняя версия, и вы должны добавить using System.Linq для доступа к необходимым методам расширения.

0 голосов
/ 23 декабря 2010

Это чрезвычайно широкий вопрос. См .: структуры данных

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

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