У меня такой случай, мне нужно получить ненулевые значения массива, отсортировать их и найти медианную ценность. Я сделал следующее,LinQ: C# сортировать массив при копировании с помощью некоторых фильтров
var array2 = (from t in array1 where t.array2 != 0 select t.array2).ToArray();
Array.Sort(array2);
var Median = array2.Length % 2 == 0 ? new List<double>() { ((array2[array2.Length/2 - 1]) + (array2[array2.Length/2]))/2 } : new List<double>() { array2[array2.Length/2] };
На данный момент все идет хорошо. Но я думаю о слиянии первых двух строк в одном, например, копировании ненулевых значений с использованием метода orderby. Для этого я попытался, как,
var array2 = (from t in ipedsTableValue where t.array2 != 0 select t.array2).ToArray(t); // Not worked
предложить Также меня, если есть какие-либо супер способ вычислить медиану массива в C#, потому что линия также выглядит настолько большой, и я боюсь, что это не так легко читаемым.
Я упоминал SO ресурс: Add a Median Method to a List Хотя он работает нормально, я думаю о некотором простом и эффективном коде с некоторым количеством кодов. Любое предложение было бы полезно!
Возможный дубликат [Добавить медианный метод в список] (http://stackoverflow.com/questions/5275115/add-a-median-method-to-a-list) –
Изменена начальная строка, предположить, что вы хотите получать ненулевые значения в массиве, сортировать их (что требуется для медианы) и вычислять медианную. Неверно было предположить, что вам нужно скопировать другой массив, что вызвало первоначальное несоответствие в моем первом решении. –