Codey McCodeface Codey McCodeface - 1 month ago 8
Vb.net Question

determine which of 3 values is highest and add it's value

My code needs to take the highest value of 3 lines and add it to the "line" property. However it's not behaving how I would expect, I'm having erroneous errors in all 3 lines where I assume it adds the wrong values, resulting in line merging and text overlapping.

item_title_lines
value should be added if higher than remark lines and it's over 1

item_remark_lines
value should be added if higher than remark lines and it's over 1, or if both values are the same

unit_lines
has a max value of 2. This is only added if both values are 1.

If item_title_lines > item_remark_lines And item_title_lines > 1 Then line = line + item_title_lines
If item_remark_lines > item_title_lines And item_remark_lines > 1 Then line = line + item_remark_lines
If item_remark_lines = item_title_lines Then line = line + item_remark_lines
End If
End If
If item_remark_lines = 1 And item_title_lines = 1 Then
line = line + unit_lines
End If


Another variation of this I've tried is

If Math.Max(item_title_lines, item_remark_lines) >= unit_lines Then
line = line + Math.Max(item_title_lines, item_remark_lines) 'Add highest of those values to line count
Else
line = line + unit_lines 'Otherwise, add unit lines to line count
End If


Which achieves the same results. Is there a more elegant way of comparing 3 values and adding the highest?

Answer Source

I like this one:

line += {item_title_lines, item_remark_lines, unit_lines}.Max()