c # куб / многомерный набор данных - PullRequest
2 голосов
/ 03 марта 2010

Я работаю над проблемой, когда мне нужно обработать многомерные данные в памяти, используя C #. Мое требование напоминает кубы OLAP, но не так сложно. например, мне не нужны вычисления или агрегация или тому подобное. Я в основном хотел бы ссылаться на данные с использованием многомерных ключей. например:

var key = new Key();
key["Dim1"] = "DimValue1";
key["Dim2"] = "DimValue2";
key["Time"] = 1999;
DataSet[key] = 4.43434m;

И это позволило бы мне перебирать значения или срезы набора данных. Сталкивались ли вы с такой библиотекой в ​​C #?

Ответы [ 3 ]

1 голос
/ 03 марта 2010

Это может не соответствовать вашим потребностям, но я нашел простой способ справиться с многоключевыми наборами данных, это создать объект, который содержит все ваши поля 'key' и ключи 'value' (столько, сколько вынужно), а затем создайте выражения Lookup для каждого из ваших ключей.

Например:

class MyData
{
    // Your keys
    public string Dim1;
    public string Dim2;
    public string Time;

    // Your values
    public string Value;
}

будет «проиндексировано» и получено так:

0 голосов
/ 04 марта 2010

Я думаю, что хранилище ключей / значений, такое как MongoDB и Redis, близко к тому, что мне нужно. Однако я не уверен на 100%. Так как меня не волнует настойчивость, в памяти больше подходит история Redis .

0 голосов
/ 03 марта 2010

Вы можете создать словарь, в котором тип ключа - это структура, которую вы объявляете. Это не дает вам автоматической итерации срезов, хотя вы можете добиться этого с помощью фильтрации.

...