С# WPF: найти наибольшее значение с помощью кнопки в ListBox

Может быть, это мелочь, но я не могу найти на нее ответ.

Я хочу, чтобы при добавлении некоторых чисел в ListBox при нажатии кнопки «Самая большая» отображалось наибольшее число из списка.

Вот изображение, как это выглядит: Ссылка на изображение

Это код.

    private void addButton_Click(object sender, RoutedEventArgs e)
    {
        ListBoxItem newItem = new ListBoxItem();
        newItem.Content = addNumberTextBox.Text;
        numberListBox.Items.Add(newItem);
    }

    private void sumButton_Click(object sender, RoutedEventArgs e)
    {
        int sum = 0;
        foreach (ListBoxItem item in numberListBox.Items)
        {
            sum += Convert.ToInt32(item.Content);
        }
        sumTextBox.Text = Convert.ToString(sum);
    }

    private void largestButton_Click(object sender, RoutedEventArgs e)
    {
       ????
    }
}

person jordan.nogiyan    schedule 15.12.2016    source источник
comment
Возможный дубликат Как найти наибольшее и наименьшее значение в список   -  person abdul    schedule 15.12.2016
comment
Вместо того, чтобы явно добавлять ListBoxItems с числовыми строками в качестве содержимого, вы должны привязать свой ListBox к ObservableCollection<int> в модели представления. Числовые операции (такие как Sum и Largest) должны быть реализованы как методы в модели представления, которые работают с ObservableCollection. Найдите в Интернете MVVM.   -  person Clemens    schedule 15.12.2016


Ответы (2)


Используя Linq, это просто,

var items = numberListBox.Items.OfType<ListBoxItem>;
var numbers = items.Select(x => Convert.ToInt32(x.Content));
var largest = numbers.Max();
person Ash Burlaczenko    schedule 15.12.2016

Вы можете сделать что-то вроде этого:

int highestNum = 0;

foreach (ListBoxItem item in numberListBox.Items)
{
    if (item > highestNum)
    {
        highestNum = item;
    }
}

highestNumTextbox.text = highestNum;
person Ben Clarke    schedule 15.12.2016