Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串数组索引不包含空值_C#_Arrays_Asp.net Mvc_Openxml Sdk - Fatal编程技术网

C# 字符串数组索引不包含空值

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

我有一个字符串数组,但是空值不会被索引和存储

例如,如果我有一个数组{“一”,“三”},那么数组[0]的值是一,而数组[1]的值是三而不是“”,为什么要删除空值,而下一个值的索引变成空值

这是我的代码,我使用OpenXMLSDK读取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");
        }
}
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()
方法误用了传递给它的索引。但您的代码示例严重不足。如果您想要实际答案,请发布可靠地再现问题的内容。