ManojRGEC Ответов: 2

Как найти индекс элемента массива, длина которого минимум в C#


string[] test = { "absc", "abc", "abcder", "abcdg" };


how to find the index value of array whose element length is minimum in c#


Here i should get 1 as a output




заранее спасибо.

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

<pre>string[] test = { "absc", "abc", "abcder", "abcdg" };


how to find the index value of array whose element length is minimum in c#


Here i should get 1 as a output




заранее спасибо.

CHill60

Раздел "Что я пробовал" предназначен для того, чтобы вы поместили код, который вы пробовали.

2 Ответов

Рейтинг:
6

George Swan

Если вы знакомы с Linq, вы можете сделать это с помощью одной строки кода.

string[] test = { "absc", "abc", "abcder", "abcdg" };
var smallest = Array.IndexOf(test, test.First(s => s.Length == test.Min(st => st.Length)));


CHill60

Если они не могут решить, как пересечь массив с помощью for петля что-то мне подсказывает, что они не поймут. :-)

ManojRGEC

Спасибо, это работает на меня. :)

Рейтинг:
12

OriginalGriff

Это не трудно, но ... .. это пахнет домашним заданием, так что я не дам тебе никакого кода!

Все, что вам нужно сделать, это:
1) создайте две переменные: minLength (по умолчанию int. MaxValue) и minIndex (по умолчанию -1)
2) Используйте for цикл для просмотра всех элементов в вашем массиве с индексной переменной, которая работает от 0 до длины минус 1.
2.1) если текущее значение индекса меньше minLength, установите его в качестве нового minLength и установите minIndex в текущий индекс.
3) после цикла minLength говорит, насколько коротким был самый короткий, а minIndex говорит, где он был.

Просто, не так ли?


ManojRGEC

Спасибо за ваше решение :)

минимальная длина инт = инт.Максвеллову;
int index = -1;

for (int i = 0; i & lt; test.Длина; i++)
{
если (тест[i].Длина < minLength)
{
minLength = тест[i].Длина;
индекс = i;
}
}