В качестве альтернативы, вы всегда можете выбрать значения Min
и Max
между двумя текстовыми полями (независимо от того, какой символ в каком текстовом поле), а затем использовать OrderBy
, чтобы либо упорядочить ascending
, либо descending
в зависимости от того, если fromValue
меньше или больше toValue
.
Таким образом, если пользователь вводит fromValue
как D
и toValue
как B
, вывод будет D, C, B
(это то, что я ожидал бы как пользователь).
Например:
char.TryParse(txtFrom.Text, out char fromValue);
char.TryParse(txtTo.Text, out char toValue);
// Get the smallest and largest of the two values
var minVal = Math.Min(fromValue, toValue);
var maxVal = Math.Max(fromValue, toValue);
var alphabetRange = Enumerable.Range(minVal, maxVal - minVal + 1)
.OrderBy(i => fromValue < toValue ? i : -i) // If from > to, sort by the negative of i
.Select(i => (char) i).ToArray();