C# 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
comment
Разгледайте и Общ преглед на шаблони за данни статия в MSDN.   -  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