У меня есть массив строк, но нулевые значения не индексируются и хранятсяИндекса массива строк не имеющий нулевое значения
Например, если у меня есть массив { «один», «», «три»}, значение из массива [0] является одним, а значение массива [1] становится три вместо «", почему пустые значения удаляются, а индекс следующего значения становится нулевым значением.
Вот мой код, я использую Open XML SDK, чтобы читать и хранить ячейки excel в массиве.
foreach (var row in rows)
{
int i = 0;
string[] rowData = new string[9];
var cells = row.Elements<Cell>();
foreach (var cell in cells)
{
if (cell != null)
{
var index = Int32.Parse(cell.CellValue.Text);
if (cell.DataType != null)
{
rowData[i] = GetSharedStringItemById(workbookPart, index);
}
}
i++;
}
var store = new UserStore<User>(context);
var manager = new UserManager<User>(store);
var user = new User
{
UserName = rowData[0],
FirstName = rowData[1],
LastName = rowData[2],
Email = rowData[3],
EmailConfirmed = true,
RegisterdOn = now,
Employer = new Employer()
{
CompanyName = rowData[4],
AddressLine1 = rowData[5],
AddressLine2 = rowData[6],
City = rowData[7], <---if value of city is null, the value of PostCode is used?
PostCode = rowData[8],
}
};
var result = manager.Create(user, "123456");
if (result.Succeeded)
{
manager.AddToRole(user.Id, "Employer");
}
}
На основе кода, который вы отправили, проблема заключается в том, что свойство 'cell.CellValue.Text' возвращает неверный индекс, или метод GetSharedStringItemById()' неправильно использует индекс, который ему передан. Но ваш пример кода крайне неадекватен. Если вы хотите получить реальный ответ, напишите [хороший, _minimal_, _complete_ пример кода] (https://stackoverflow.com/help/mcve), который надежно воспроизводит проблему. –