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

如何按email字段对Ballerina的Employee record类型数组排序?

按Email字段对Employee Record数组排序的实现方案

下面针对几种主流编程语言,给出具体的排序实现方式:

Java(16+ 支持Record类型)

利用Arrays.sort()结合Comparator即可实现按email字段排序:

import java.util.Arrays;
import java.util.Comparator;

public record Employee(String email, String status) {}

public class SortEmployees {
    public static void main(String[] args) {
        Employee[] employees = {
            new Employee("bob@example.com", "active"),
            new Employee("alice@example.com", "inactive"),
            new Employee("charlie@example.com", "active")
        };

        // 升序排序(两种写法任选)
        Arrays.sort(employees, (e1, e2) -> e1.email().compareTo(e2.email()));
        // 或者用方法引用简化
        Arrays.sort(employees, Comparator.comparing(Employee::email));

        // 降序排序
        Arrays.sort(employees, Comparator.comparing(Employee::email).reversed());
    }
}

C#

C#的Record类型排序可以通过Array.Sort()直接修改原数组,或者用LINQ生成新的排序后数组:

方式1:修改原数组

public record Employee(string Email, string Status);

class Program
{
    static void Main()
    {
        Employee[] employees = {
            new Employee("bob@example.com", "active"),
            new Employee("alice@example.com", "inactive"),
            new Employee("charlie@example.com", "active")
        };

        // 升序排序
        Array.Sort(employees, (e1, e2) => string.Compare(e1.Email, e2.Email));
        // 降序排序
        Array.Sort(employees, (e1, e2) => string.Compare(e2.Email, e1.Email));
    }
}

方式2:用LINQ生成新数组(不修改原数组)

using System.Linq;

// ...

// 升序
var sortedAsc = employees.OrderBy(e => e.Email).ToArray();
// 降序
var sortedDesc = employees.OrderByDescending(e => e.Email).ToArray();

JavaScript/TypeScript

直接使用数组的sort()方法,结合localeCompare处理字符串排序:

TypeScript

type Employee = {
    email: string;
    status: string;
};

const employees: Employee[] = [
    { email: "bob@example.com", status: "active" },
    { email: "alice@example.com", status: "inactive" },
    { email: "charlie@example.com", status: "active" }
];

// 修改原数组的升序排序
employees.sort((a, b) => a.email.localeCompare(b.email));

// 生成新数组的升序排序(不修改原数组)
const sortedAsc = [...employees].sort((a, b) => a.email.localeCompare(b.email));

// 降序排序
const sortedDesc = [...employees].sort((a, b) => b.email.localeCompare(a.email));

JavaScript

去掉类型声明即可,逻辑完全一致:

const employees = [
    { email: "bob@example.com", status: "active" },
    { email: "alice@example.com", status: "inactive" },
    { email: "charlie@example.com", status: "active" }
];

employees.sort((a, b) => a.email.localeCompare(b.email));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:31:01