C# 字符串数组索引不包含空值
我有一个字符串数组,但是空值不会被索引和存储 例如,如果我有一个数组{“一”,“三”},那么数组[0]的值是一,而数组[1]的值是三而不是“”,为什么要删除空值,而下一个值的索引变成空值 这是我的代码,我使用OpenXMLSDK读取excel单元格并将其存储到数组中C# 字符串数组索引不包含空值,c#,arrays,asp.net-mvc,openxml-sdk,C#,Arrays,Asp.net Mvc,Openxml Sdk,我有一个字符串数组,但是空值不会被索引和存储 例如,如果我有一个数组{“一”,“三”},那么数组[0]的值是一,而数组[1]的值是三而不是“”,为什么要删除空值,而下一个值的索引变成空值 这是我的代码,我使用OpenXMLSDK读取excel单元格并将其存储到数组中 foreach (var row in rows) { int i = 0; string[] rowData = new string[9]; var cells = row.Ele
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");
}
}
foreach(行中的变量行)
{
int i=0;
string[]rowData=新字符串[9];
var cells=row.Elements();
foreach(单元格中的var单元格)
{
如果(单元格!=null)
{
var index=Int32.Parse(cell.CellValue.Text);
if(cell.DataType!=null)
{
rowData[i]=GetSharedStringItemById(workbookPart,索引);
}
}
i++;
}
var store=新用户存储(上下文);
var-manager=新用户管理器(存储);
var user=新用户
{
用户名=行数据[0],
FirstName=rowData[1],
LastName=rowData[2],
电子邮件=行数据[3],
emailconfirm=true,
RegisterdOn=现在,
雇主=新雇主()
{
CompanyName=rowData[4],
AddressLine1=行数据[5],
AddressLine2=行数据[6],
City=rowData[7],如果有帮助,您可以查看以下内容
//在转换为整数之前,检查单元格的值是否为空
if(cell.CellValue.Text != null){
var index = Int32.Parse(cell.CellValue.Text);
//将转换值添加到数组
rowData[i] = GetSharedStringItemById(workbookPart, index);
}
//in case the value contained in a cell is null, then assign either "" or null
rowData[i] = "";
另外,请注意“”与null不同。如果测试“”和null是否相等,测试结果将为false。根据您发布的代码,问题在于cell.CellValue.Text
属性返回错误的索引,或者GetSharedStringItemById()
方法误用了传递给它的索引。但您的代码示例严重不足。如果您想要实际答案,请发布可靠地再现问题的内容。