public static void Main(string[] args)
User[] myUsers = new User[]{
new User("B1", 1, false),
new User("D5", 5, false),
new User("F20", 20, true)
PerfLoc[] myPerfLocs = new PerfLoc[]{
myPerfLocs = new PerfLoc[] { };
var filteredUser = myUsers.AsEnumerable();
filteredUser = filteredUser.Where(u => u.Active);
filteredUser = from u in filteredUser
join p in myPerfLocs on u.PerfLoc equals p.Number.ToString()
filteredUser = filteredUser.OrderBy(u => u);
foreach (User match in filteredUser)
Console.WriteLine(match.Name);
public class User : IComparable
public string Name { get; set; }
public string PerfLoc { get; set; }
public bool Active { get; set; }
public User(string n, int p, bool a)
this.PerfLoc = p.ToString();
public int CompareTo(object obj)
return this.Name.CompareTo(((User)obj).Name);
public int Number { get; set; }