//求最后一个不为空值的索引
int indexLast = dataTableWorksheet.AsEnumerable().Select(x => x[indexSpecMax].ToString()).ToList().FindLastIndex(m => !string.IsNullOrEmpty(m));
//判断列数据格式,返回bool类型List
List<bool> resultList = dataTableWorksheet.AsEnumerable()
.Select(x => x[indexSpecMax].ToString()) // 转List<string>
.Select((value, index) => new { value, index }) // (值,索引)形式
.Where((value, index) => index <= indexLast) // 索引范围选择
.Select(x => x.value) // 返回(值)的形式
.Where(x => !string.IsNullOrEmpty(x)) // 筛除空值
.Select(x => double.TryParse(x, out _)) // double 类型判断
.ToList();
//反馈给用户提示信息
if (resultList.Contains(false))
{
switch (Program.language)
{
case "zh-CN":
MessageBox.Show("规格值类型错误,请确认!", "信息提示:");
break;
default:
MessageBox.Show("SpecMax data type error", "Information:");
break;
}
return false;
}