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

有没有快捷方式获取数组倒数第二个元素?如何实现最后两元素拼接?

嘿,这个需求挺常见的,我来给你分享几个简洁优雅的实现方案,既能满足通用方法的要求,又能轻松拿到你想要的结果!

首先明确核心需求:不管数组长度是3还是4(甚至更长),都要取倒数第二个和最后一个元素,用.拼接成字符串。下面是几种可行的方式:

1. 最直接的索引访问法(性能最优)

数组本身支持直接通过索引访问元素,倒数第二个元素的索引就是数组长度 - 2,最后一个是数组长度 - 1,直接拼接即可,这种方式没有额外的LINQ开销,效率最高:

public static string GetLastTwoJoined(string[] arr)
{
    // 先做参数校验,避免空数组或者长度不足的情况
    if (arr == null || arr.Length < 2)
        throw new ArgumentException("数组必须包含至少2个元素哦");
    
    return $"{arr[arr.Length - 2]}.{arr[arr.Length - 1]}";
}

2. LINQ的TakeLast方法(简洁易读)

如果你用的是.NET Core 2.0+、.NET Framework 4.7.2+或者.NET 5及以上版本,可以直接用TakeLast(2)获取最后两个元素,再用string.Join拼接,代码非常清爽:

using System.Linq; // 别忘了引用LINQ命名空间

public static string GetLastTwoJoined(string[] arr)
{
    if (arr == null || arr.Length < 2)
        throw new ArgumentException("数组必须包含至少2个元素哦");
    
    var lastTwoElements = arr.TakeLast(2);
    return string.Join(".", lastTwoElements);
}

3. 兼容老版本.NET的Skip方法

如果你的项目还在使用比较老的.NET版本(比如.NET Framework 4.7之前),TakeLast可能不支持,这时候可以用Skip(arr.Length - 2)跳过前面的元素,直接取最后两个:

using System.Linq;

public static string GetLastTwoJoined(string[] arr)
{
    if (arr == null || arr.Length < 2)
        throw new ArgumentException("数组必须包含至少2个元素哦");
    
    var lastTwoElements = arr.Skip(arr.Length - 2);
    return string.Join(".", lastTwoElements);
}

小提醒

不管用哪种方式,参数校验都是必要的,不然当数组为空或者只有1个元素时,会抛出索引越界的异常,提前做判断能让方法更健壮。

测试你给的例子:

  • 传入myArr1(长度3),会返回"S2.S3"
  • 传入myArr2(长度4),会返回"S3.S4"

完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:28:11