Language Integrated Query
Obviously, games work with lots of data. They work with not just strings but also with objects, databases, tables, documents, and plenty more, too many to list here. However, despite the extensiveness and variety of data, there's always a common need to filter it, viewing smaller subsets of it as is relevant to our needs at the time. For example, given a complete array (or enumerated list) of all wizard objects in the scene, we might want to restrict the results even further, viewing only wizards whose health is less than 50 percent and whose defense points are less than 5. The purpose is, perhaps, to initiate a mass flee behavior on the wizards to find a nearby potion and restore their health before resuming an attack on the player. Let's now consider the implementation of this scenario and how a technology, Linq, can help us.
Tip
A complete Linq sample project can be found in the book's companion files (code bundle) at Chapter06\Linq\
.
First, a very basic and sample...