Я хочу найти индекс столбца, используя данные столбца - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь получить индекс столбца, используя имя столбца, но если я введу имя столбца, которого нет в наборе данных, я получу исключение.Как мне справиться с этим?

string columnName ="ABC";

int ColumnNumber-0;

if(ws.Cells["1:1"].First(c => c.Value.ToString() == columnName ).Start.Column!=Undefined)
{
    ColumnNumber=ws.Cells["1:1"].First(c => c.Value.ToString() == columnName ).Start.Column;
}

1 Ответ

0 голосов
/ 05 октября 2018

Наиболее вероятным кандидатом на исключение является ваш звонок в First.Он не находит элементы, которые соответствуют Value == columnName, и выдает исключение.Я бы предложил разбить ваше заявление if, чтобы вы могли разобраться с этим делом.Я бы также предложил использовать FirstOrDefault, поскольку он просто возвращает ноль, а не вызывает исключение.

var myCell = ws.Cells["1:1"].FirstOrDefault(c => c.Value.ToString() == columnName );
if (myCell != null && myCell.Start.Column != Undefined)
{
    ColumnNumber = myCell.Start.Column;
}
...