Примерно так (пример кода C # ниже)?
Извините за странные имена переменных, но событие является ключевым словом:)
Я не использовал Visual Studio, поэтому я надеюсь, что синтаксис правильный.
string eventName = "Event";
var theEvent = Events.FirstOrDefault(ev => ev.Name == eventName);
int eventOrderNo = Orders.Count(or => or.EventName == eventName);
var thePlace = Places.FirstOrDefault(pl => pl.Name == theEvent.Place);
int ticketsLeft = thePlace.Capacity - eventOrderNo;
ЕслиСобытие имеет несколько мест, последние две строки будут выглядеть следующим образом:
int placesCapacity = Places.Where(pl => pl.Name == theEvent.Place)
.Sum(pl => pl.Capacity);
int ticketsLeft = placesCapacity - eventOrderNo;
На sidenote
LINQ 101 - отличный способ познакомиться с LINQ: http://msdn.microsoft.com/en-us/vcsharp/aa336746