Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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#_Asp.net_Openxml - Fatal编程技术网

C# 获取表的最后一行

C# 获取表的最后一行,c#,asp.net,openxml,C#,Asp.net,Openxml,如果获取第一行/最后一行如下所示: TableRow lastRow = theTable.Elements<TableRow>().Last(); TableRow firstRow = theTable.Elements<TableRow>().First(); TableRow lastRow=table.Elements().Last(); TableRow firstRow=table.Elements().First(); 如何选择最后一行?尝试以下操作

如果获取第一行/最后一行如下所示:

TableRow lastRow = theTable.Elements<TableRow>().Last();

TableRow firstRow = theTable.Elements<TableRow>().First();
TableRow lastRow=table.Elements().Last();
TableRow firstRow=table.Elements().First();
如何选择最后一行?

尝试以下操作:

TableRow firstRow = theTable.Elements<TableRow>().Reverse().Skip(1).First();
TableRow firstRow=table.Elements().Reverse().Skip(1.First();
请注意,如果没有合适的行可用(也包括
Last
First
),此表达式可能引发异常。

请尝试以下操作:

TableRow firstRow = theTable.Elements<TableRow>().Reverse().Skip(1).First();
TableRow firstRow=table.Elements().Reverse().Skip(1.First();
请注意,如果没有合适的行可用(也包括
Last
First
),此表达式可能引发异常。

请尝试以下操作:

TableRow firstRow = theTable.Elements<TableRow>().Reverse().Skip(1).First();
TableRow firstRow=table.Elements().Reverse().Skip(1.First();
请注意,如果没有合适的行可用(也包括
Last
First
),此表达式可能引发异常。

请尝试以下操作:

TableRow firstRow = theTable.Elements<TableRow>().Reverse().Skip(1).First();
TableRow firstRow=table.Elements().Reverse().Skip(1.First();

请注意,如果没有合适的行可用(也包括
Last
First
),此表达式可能会引发异常。

如果您知道计数,可以通过减法从后面找到
k
-th元素,如下所示:

var k = 2; // Second element from the back
var total = theTable.Elements<TableRow>().Count();
if (total < k) throw ... // Not enough elements
var kThFromBack = theTable.Elements<TableRow>().Skip(total-k).First();
var k=2;//后面的第二个元素
var total=theTable.Elements().Count();
如果(总数
如果您知道计数,您可以通过减法从后面找到第k个元素,如下所示:

var k = 2; // Second element from the back
var total = theTable.Elements<TableRow>().Count();
if (total < k) throw ... // Not enough elements
var kThFromBack = theTable.Elements<TableRow>().Skip(total-k).First();
var k=2;//后面的第二个元素
var total=theTable.Elements().Count();
如果(总数
如果您知道计数,您可以通过减法从后面找到第k个元素,如下所示:

var k = 2; // Second element from the back
var total = theTable.Elements<TableRow>().Count();
if (total < k) throw ... // Not enough elements
var kThFromBack = theTable.Elements<TableRow>().Skip(total-k).First();
var k=2;//后面的第二个元素
var total=theTable.Elements().Count();
如果(总数
如果您知道计数,您可以通过减法从后面找到第k个元素,如下所示:

var k = 2; // Second element from the back
var total = theTable.Elements<TableRow>().Count();
if (total < k) throw ... // Not enough elements
var kThFromBack = theTable.Elements<TableRow>().Skip(total-k).First();
var k=2;//后面的第二个元素
var total=theTable.Elements().Count();
如果(总数
做了一点扩展方法:

public static T NthLast<T>(this IEnumerable<T> source, int count)
{
    if (count < 0)
        throw new ArgumentException("count must be >= 0");

    int i = 0;
    var queue = new Queue<T>(count);

    using (var e = source.GetEnumerator())
    {
        while (e.MoveNext())
        {
            queue.Enqueue(e.Current);

            if (i++ > count)
                queue.Dequeue();
        }

        if (count >= i)
            throw new ArgumentException("count was greater than length");
    }

    return queue.Dequeue();
}
publicstaticnthlast(此IEnumerable源代码,int计数)
{
如果(计数<0)
抛出新ArgumentException(“计数必须大于等于0”);
int i=0;
var queue=新队列(计数);
使用(var e=source.GetEnumerator())
{
while(如MoveNext())
{
排队。排队(如当前);
如果(i++>计数)
queue.Dequeue();
}
如果(计数>=i)
抛出新ArgumentException(“计数大于长度”);
}
return queue.Dequeue();
}
要获取最后一个元素,请执行以下操作:

var secondLast = theTable.Elements<TableRow>().NthLast(1)
var secondLast=theTable.Elements().NthLast(1)

做了一点扩展方法:

public static T NthLast<T>(this IEnumerable<T> source, int count)
{
    if (count < 0)
        throw new ArgumentException("count must be >= 0");

    int i = 0;
    var queue = new Queue<T>(count);

    using (var e = source.GetEnumerator())
    {
        while (e.MoveNext())
        {
            queue.Enqueue(e.Current);

            if (i++ > count)
                queue.Dequeue();
        }

        if (count >= i)
            throw new ArgumentException("count was greater than length");
    }

    return queue.Dequeue();
}
publicstaticnthlast(此IEnumerable源代码,int计数)
{
如果(计数<0)
抛出新ArgumentException(“计数必须大于等于0”);
int i=0;
var queue=新队列(计数);
使用(var e=source.GetEnumerator())
{
while(如MoveNext())
{
排队。排队(如当前);
如果(i++>计数)
queue.Dequeue();
}
如果(计数>=i)
抛出新ArgumentException(“计数大于长度”);
}
return queue.Dequeue();
}
要获取最后一个元素,请执行以下操作:

var secondLast = theTable.Elements<TableRow>().NthLast(1)
var secondLast=theTable.Elements().NthLast(1)

做了一点扩展方法:

public static T NthLast<T>(this IEnumerable<T> source, int count)
{
    if (count < 0)
        throw new ArgumentException("count must be >= 0");

    int i = 0;
    var queue = new Queue<T>(count);

    using (var e = source.GetEnumerator())
    {
        while (e.MoveNext())
        {
            queue.Enqueue(e.Current);

            if (i++ > count)
                queue.Dequeue();
        }

        if (count >= i)
            throw new ArgumentException("count was greater than length");
    }

    return queue.Dequeue();
}
publicstaticnthlast(此IEnumerable源代码,int计数)
{
如果(计数<0)
抛出新ArgumentException(“计数必须大于等于0”);
int i=0;
var queue=新队列(计数);
使用(var e=source.GetEnumerator())
{
while(如MoveNext())
{
排队。排队(如当前);
如果(i++>计数)
queue.Dequeue();
}
如果(计数>=i)
抛出新ArgumentException(“计数大于长度”);
}
return queue.Dequeue();
}
要获取最后一个元素,请执行以下操作:

var secondLast = theTable.Elements<TableRow>().NthLast(1)
var secondLast=theTable.Elements().NthLast(1)

做了一点扩展方法:

public static T NthLast<T>(this IEnumerable<T> source, int count)
{
    if (count < 0)
        throw new ArgumentException("count must be >= 0");

    int i = 0;
    var queue = new Queue<T>(count);

    using (var e = source.GetEnumerator())
    {
        while (e.MoveNext())
        {
            queue.Enqueue(e.Current);

            if (i++ > count)
                queue.Dequeue();
        }

        if (count >= i)
            throw new ArgumentException("count was greater than length");
    }

    return queue.Dequeue();
}
publicstaticnthlast(此IEnumerable源代码,int计数)
{
如果(计数<0)
抛出新ArgumentException(“计数必须大于等于0”);
int i=0;
var queue=新队列(计数);
使用(var e=source.GetEnumerator())
{
while(如MoveNext())
{
排队。排队(如当前);
如果(i++>计数)
queue.Dequeue();
}
如果(计数>=i)
抛出新ArgumentException(“计数大于长度”);
}
return queue.Dequeue();
}
要获取最后一个元素,请执行以下操作:

var secondLast = theTable.Elements<TableRow>().NthLast(1)
var secondLast=theTable.Elements().NthLast(1)
简单的一个

TableRow lastButOneRow= theTable.Rows[theTable.Rows.Count-2]
简单的

TableRow lastButOneRow= theTable.Rows[theTable.Rows.Count-2]
简单的

TableRow lastButOneRow= theTable.Rows[theTable.Rows.Count-2]
简单的

TableRow lastButOneRow= theTable.Rows[theTable.Rows.Count-2]

最后一个是什么?你是说最后一排吗?@哈姆雷特是的,最后一排第二排是什么?你是说最后一排吗?@哈姆雷特是的,最后一排第二排是什么?你是说最后一排吗?@哈姆雷特是的,最后一排第二排是什么?您是指最后一行吗?@Hamlet是的,最后一行错误:无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“DocumentFormat.OpenXml.Wordprocessing.TableRow”。存在显式转换(您是否缺少转换?)谢谢,将您以前的答案与DasBinkenLights混合,得到了我想要的结果,看起来与您当前的版本完全相同:)错误:无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“DocumentFormat.OpenXml.Wordprocessing.TableRow”。解释