interface User {
string Name; int Age;
}
User New(string n, int a) {
self.Name = n;
self.Age = a;
return self;
}
User[] Index(User[] self, lambda<bool>(User) criteria) {
User[] out = [];
foreach (User u in self)
if (criteria(u))
out.Append(u);
return out;
}
User First(User[] self)
=> self.Count > 0? self[0]: null;
void Main() {
User[] Users = [
new User("Gonzalo", 100),
new User("NaCl", 10),
new User("", 0)
];
User U = Users[x => x.Name == ""].First();