C# 跳过列范围的第一个值并添加到列表中

C# 跳过列范围的第一个值并添加到列表中,c#,excel,C#,Excel,所以我有一个循环的范围,然后将值添加到列表中。我想跳过第一个值,因为它是一个标题。我怎么能这样做呢?目前,我正在增加所有的价值 { var cellValues = new List<string>(); //var rowsCount = worksheet.UsedRange.Rows.Count; var columnRange = worksheet.UsedRange.Columns[1]; fore

所以我有一个循环的范围,然后将值添加到列表中。我想跳过第一个值,因为它是一个标题。我怎么能这样做呢?目前,我正在增加所有的价值

    {
        var cellValues = new List<string>();
        //var rowsCount = worksheet.UsedRange.Rows.Count;
        var columnRange = worksheet.UsedRange.Columns[1];

        foreach (var item in columnRange)
        {
            foreach (var cellValue in item.Value)
            {

                cellValues.Add(cellValue.ToString());

            }
        }

        return cellValues;
    }
{
var cellValues=新列表();
//var rowscont=worksheet.UsedRange.Rows.Count;
var columnRange=worksheet.UsedRange.Columns[1];
foreach(columnRange中的变量项)
{
foreach(item.Value中的var cellValue)
{
添加(cellValue.ToString());
}
}
返回单元格值;
}

您可以使用
for
循环,而不是
foreach

    for (int a = 1; a < columnRange.Count; a++)
    {
        for (int b = 0; b < columnRange[a].Value.Count; b++)
        {
            cellValues.Add(columnRange[a].Value[b].ToString());

        }
    }
for(int a=1;a

var cellValues=new List();
//var rowscont=worksheet.UsedRange.Rows.Count;
var columnRange=worksheet.UsedRange.Columns[1];
bool first=true;
foreach(columnRange中的变量项)
{
如果(第一)
{
第一个=假;
}
其他的
{
foreach(item.Value中的var cellValue)
{    
添加(cellValue.ToString());
}
}
}
返回单元格值;

或者ramin提到的
Skip()

您可以使用
for
循环,而不是
foreach

    for (int a = 1; a < columnRange.Count; a++)
    {
        for (int b = 0; b < columnRange[a].Value.Count; b++)
        {
            cellValues.Add(columnRange[a].Value[b].ToString());

        }
    }
for(int a=1;a

var cellValues=new List();
//var rowscont=worksheet.UsedRange.Rows.Count;
var columnRange=worksheet.UsedRange.Columns[1];
bool first=true;
foreach(columnRange中的变量项)
{
如果(第一)
{
第一个=假;
}
其他的
{
foreach(item.Value中的var cellValue)
{    
添加(cellValue.ToString());
}
}
}
返回单元格值;

或者ramin提到的
Skip()

您可以使用LINQ的
Skip
功能

    var cellValues = new List<string>();
    //var rowsCount = worksheet.UsedRange.Rows.Count;
    var columnRange = worksheet.UsedRange.Columns[1];

    foreach (var item in columnRange)
    {
        foreach (var cellValue in ((object[,])item.Value).Cast<object>().Skip(1))
        {

            cellValues.Add(cellValue.ToString());

        }
    }

    return cellValues;
var cellValues=new List();
//var rowscont=worksheet.UsedRange.Rows.Count;
var columnRange=worksheet.UsedRange.Columns[1];
foreach(columnRange中的变量项)
{
foreach(var cellValue in((object[,])item.Value.Cast().Skip(1))
{
添加(cellValue.ToString());
}
}
返回单元格值;

但是因为
item.Value
是一个动态类型,我们需要强制转换它以使用扩展方法,并且因为它是一个锯齿数组,我们需要使用
cast()
您可以使用LINQ的
Skip
函数

    var cellValues = new List<string>();
    //var rowsCount = worksheet.UsedRange.Rows.Count;
    var columnRange = worksheet.UsedRange.Columns[1];

    foreach (var item in columnRange)
    {
        foreach (var cellValue in ((object[,])item.Value).Cast<object>().Skip(1))
        {

            cellValues.Add(cellValue.ToString());

        }
    }

    return cellValues;
var cellValues=new List();
//var rowscont=worksheet.UsedRange.Rows.Count;
var columnRange=worksheet.UsedRange.Columns[1];
foreach(columnRange中的变量项)
{
foreach(var cellValue in((object[,])item.Value.Cast().Skip(1))
{
添加(cellValue.ToString());
}
}
返回单元格值;

但是因为
item.Value
是一个动态类型,我们需要强制转换它以使用扩展方法,并且因为它是一个锯齿状数组,我们需要使用
cast()

嘿,当我尝试此操作时,我得到了一个错误,System.Core.dll中出现了类型为“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”的异常,但未在用户代码中处理。啊,这是因为它是一个动态类型,所以需要首先强制转换。我可以更新答案。嘿,当我尝试此操作时,我得到了一个错误,System.Core.dll中出现了类型为“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”的异常,但没有在用户代码中处理。啊,这是因为它是一个动态类型,所以需要首先强制转换。我可以在第一次和第二次运行时更新答案,但列表中没有值。var columnRange=worksheet.UsedRange.Columns[1]之后的columnRange中是否有值@罗玛:是的,有isi,我为循环编辑过,但第二个变体必须起作用。您检查过第二个变量后是否有值吗?@Roma使用断点它运行if语句,然后停止进程并返回零值。@Roma第一次和第二次运行正常,但列表中没有值。var columnRange=worksheet.UsedRange.Columns[1]之后的columnRange中是否有值@罗玛:是的,有isi,我为循环编辑过,但第二个变体必须起作用。您检查过第二个变量后是否有值吗?@Roma使用断点运行if语句,然后停止进程并返回零值。