Member 12815488 Ответов: 1

LINQ query toarray () - как получить доступ к массиву?


у меня есть запрос LINQ, который дает мне среднее значение, связанное с индексом. Я превратил запрос в массив, но не могу понять, как что-то сделать с массивом (мне нужно использовать данные запроса). Мой LINQ только так себе

var vavg = (from z in data
                       where z.Y > 0 && z.Y < 0.1
                       group z by z.X into XGroup
                       select new
                       {
                           X = XGroup.Key,
                           vavg = XGroup.Average(z => z.A),
                       }).ToArray();


я получаю правильные результаты, но запрос не возвращается в истинном массиве, мне нужно выполнить над ними операции, поэтому мне нужен double [] [], где [0] - X, а [1] - vavg

Что я уже пробовал:

вверх.Average (); возвращает ошибку
double [] [] test = новый double[2][];
test[0] = vavg[0]; возвращает ошибку

ошибки, по-видимому, связаны со структурой массива, который не является "реальным" массивом и больше похож на структуру данных

[no name]

ToArray не возвращает многомерный массив.

1 Ответов

Рейтинг:
12

Midi_Mick

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

var vavg = (from z in data
                       where z.Y > 0 && z.Y < 0.1
                       group z by z.X into XGroup
                       select new double []
                       {
                           XGroup.Key,
                           XGroup.Average(z => z.A),
                       }).ToArray();

См. декларацию о new double[] на select Также избавился от временных назначений там - они не нужны.


Member 12815488

Спасибо! забавно, как просто некоторые вещи заканчиваются. я буквально не мог найти этот ответ в интернете за час гугления. ценить это.

Midi_Mick

Не беспокойтесь - это было весело, и я немного почесал лысину. Но как только я понял, что вам нужен массив массивов, ответ стал очевиден.

Wendelius

Хороший пример-5.