如何按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
相关产品推荐
相关产品推荐

