You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DataTable的Last()结果转为IEnumerable<DataRow>传入方法?

解决DataTable.Last()转IEnumerable的问题

你遇到的核心问题很明确:data.AsEnumerable().Last()返回的是单个DataRow实例,但你的Set方法要求的是IEnumerable<DataRow>类型的集合,类型不匹配自然会报错。下面给你几个简单可行的解决方案:

  • 用Enumerable.Repeat快速包装
    这个方法可以把单个元素转换成包含该元素的序列,代码简洁直接:

    Set(Enumerable.Repeat(data.AsEnumerable().Last(), 1));
    
  • 手动创建数组/List包装
    这种方式更直观,一眼就能看懂逻辑:

    // 数组方式
    Set(new[] { data.AsEnumerable().Last() });
    
    // List方式
    Set(new List<DataRow> { data.AsEnumerable().Last() });
    
  • 健壮性优化:处理空表情况
    如果你的DataTable可能为空,直接用Last()会抛出异常,建议搭配LastOrDefault()做判断:

    var lastRow = data.AsEnumerable().LastOrDefault();
    if (lastRow != null)
    {
        Set(new[] { lastRow });
    }
    // 这里可以补充else逻辑,比如处理空集合的情况
    

内容的提问来源于stack exchange,提问作者ManInMoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:43:16