Wpis z mikrobloga

#csharp #programowanie

Mirki, jestem świeżak w C# i szczerze mówiąc nawet nie wiem jak do tego podejść...

Chce zbudować słownik który będzie miał 3 obiekty(?) i każdy będzie miał też właściwość maxWeight i chciałbym móc prze iterować ten słownik w celu znalezienia najbliższej wartości z która to będę porównywać, w efekcie chce wyprintować klucz dla obiektu gdzie jest najlepsze dopasowanie.
Czyli jeżeli porównuje z tą listą liczbę 9 to w efekcie chce mieć wynik "M"

Jakieś rady, jak coś takiego osiągnąć?

Przykład pseudo Listy:

weights = {

"S":{
"maxWeight":5.0
},
"M":{
"maxWeight":10.0
},
":":{
"maxWeight":15.0
},

}
  • 6
@login_zajety_sic: możesz stworzyć dwie zmiennie key i diff. W key będziesz przechowywał ostatni najbliższy klucz, a w diff ostatnią najmniejsza różnice pomiędzy 9 i maxweight. Iterujesz wtedy przez te mapę i sprawdzasz czy aktualna różnica pomiędzy 9 a maxweight jest mniejsza od diff. Jeśli jest to nadpisujesz key i diff. Przed iterowaniem mozesz sobie obliczyć key i diff dla pierwszego elementu albo ustawić pusty key i diff na maksymalna wartość integera.
@rinq0k: Krótko mówiąc, chce sobie stworzyć "Kalkulator" który na podstawie danych będzie dobierać najbardziej optymalny gabaryt oraz listował % dopasowania do każdego rozmiaru.

Przykład:
waga = 9

Output:
S: 180%
M: 90%
L: 60%
Najbardziej optymalny rozmiar to: M

Nie szukam gotowego kodu a info jak mogę zbudować sobie taką listę/słownik po którym będę mógł iterować, teraz doszedłem do wniosku że w sumie chciałbym jeszcze trzymać tam tez rozmiary co bym