Я изучаю C# и LINQ, поэтому извините за этот вопрос.Как напечатать его в LINQ?
Как ввести linq для группировки тех же элементов в определенном массиве, но когда они группируют его, они видят, если количество групп больше 2, а затем делит его на 2 и возвращает значение количества групп и затем добавить его в целое
то, что я хочу, чтобы LINQ сделать в коде:
s => s > 2
s /= 2
return s;
мой исходный код является то, что:
int n = Convert.ToInt32(Console.ReadLine());
string[] userinput = Console.ReadLine().Split(' ');
int[] socks = new int[n];
socks = Array.ConvertAll(userinput, Int32.Parse);
var result = socks.GroupBy(s => s > 2).ToArray(); //This is the line which i want help
int total = 0;
foreach (var group in result)
{
total += group.Count();
Console.WriteLine(group.Count());
}
Давайте предположим, что мы имеем 10 видов носки. которые являются 10,20,30,40,50,60,70, 80,90,100
сейчас в первой строке я ввести номер носки я так, например, его 5.
в секунду Например, я могу ввести 5 видов носков. 10 10 20 20 30
Теперь я хочу, чтобы код linq определял, что здесь есть 3 ключа, которые являются 10 20 30, ключ 10 имеет больше, чем только 1 счет имеет 2. то же самое для 20, но только 30 есть 1, поэтому давайте забудем о 30. теперь количество ключей каждого из них равно 2, поэтому давайте разделим его на 2 для каждого из них, затем добавим разделенное число к сумме, так что 2/2 для каждого из них равны 1, поэтому общая сумма = 2 (это мой ожидаемый результат)
Могли бы вы предоставить некоторые exmaples, например, каков ожидаемый результат для 'int [] source = new int [] {1, 2, 2, 2, 3, 4, 5, 5};'? –
@DmitryBychenko должно быть 10 умножений min => 10 и max => 100 для ex. 10 20 30 40 ETC. –
Извините, я не следую за вами: у нас есть группы '5' с элементами' {1, 3, 1, 1, 2} '; после деления (которое мы должны применять в группе элементов '3' только' 2'), мы будем иметь «1 + 1 + 1 + 1 + 2 = 6'. Как мы можем получить '10', пожалуйста? –