2015-11-10 2 views
0

Есть ли эффективный способ фильтрации двумерного двойного массива с другим двумерным двойным массивом в C#?C# фильтровать двухмерную двойную массив с другим двумерным двойным массивом

Например, данные два массива как

double[,] unfiltered = new double[ , ] {{1, 1, 2, 3}, {2, 4, 5, 6}, {3, 7, 8, 9}}; 
    double[,] filter = new double[ , ] {{1, 1, 2, 3}, {2, 4, 5, 6}}; 

В конце, я хотел бы иметь массив, как,

фильтруется = {{3, 7, 8, 9}},

отфильтрован по первому столбцу каждой строки.

Большое спасибо.

+0

Не знаю об эффективности, но вы можете рассчитать хеши внутренних массивов и сравнить два результирующих массива, чтобы получить индексы похожих элементов. –

+0

Спасибо zloidooraque. Я могу легко добавить в список с обычным для цикла все индексы похожих элементов. Затем, в соответствии с этим списком, я могу создать новый массив с строками не повторяющихся элементов. Однако, я думаю, что когда у меня будет очень большой набор данных, это будет не очень эффективно. Есть ли у вас пример с хешей? Или я видел, что существует метод linq :: where. Тем не менее, я еще не понял, как это можно сделать. – GiorgosR

ответ

0

Вы уверены, что хотите использовать double для таких чисел?. , если возможно, используйте int, они вычисляют быстрее и требуют меньше памяти. Ваша фильтрация по всем строкам данных, которые она швыряет, выглядит как графическая функция. Возможно, вы могли бы поместить их в словарь, а затем удалить индексированные строки по идентификатору строки. Или используйте Array.Copy для копирования из определенного индекса в новый массив.

Смежные вопросы