using System.Text.RegularExpressions;
public static void Main()
new { Name = "設定1", Value = 100},
new { Name = "設定2", Value = 200},
new { Name = "設定3", Value = 300},
new { Name = "設定4", Value = 400},
new { Name = "設定5", Value = 500}
var regex = new Regex(@"設定(?<num>\d+)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
.Select(item => new { m = regex.Match(item.Name), item.Name })
.Where(x => x.m.Success == true)
.OrderBy(x => int.Parse(x.m.Groups["num"].Value))
.Select(x => int.Parse(x.m.Groups["num"].Value));
if (result.ToArray().Count() > 0) idx = result.Max() + 1;