double min = Math.Abs(mass.Average() - mass[0]);
int ind = 0;
for (int i = 1; i < mass.Length; i++)
if (Math.Abs(mass.Average() - mass[i]) < min)
{
min = Math.Abs(mass.Average() - mass[i]);
ind = i;
}
Необходимо найти индекс элемента, максимально приближенного к среднему арифметическому и записать в linq форме
допустим, есть массив
var mass = new [] {1, 3, 8, 11};
Тода однострочный медленный вариант
Console.WriteLine(mass.Select((m, i)=>(i,m))
.OrderBy(m=>Math.Abs(m.m - mass.Average())).First().i);
Двухстрочный, но чуть более быстрый
var average = mass.Average();
Console.WriteLine(mass.Select(( m, i)=>( Math.Abs(m-average) ,i))
.OrderBy(m=>m.Item1).First().i);
Самый быстрый - без linq, простым циклом пробежаться.
int ind = 0;
var average = mass.Average();
for(int i=1; i<mass.Length; i++)
{
if (Math.Abs(mass[i] - average) < Math.Abs(mass[ind] - average))
ind = i;
}
Console.WriteLine(ind);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
как из input передать параметры в функцию?я хочу взять из input value и передать в функцию как параметр, как это сделать?
Есть массив объектов класса A