Ответ 1
Linq - это расширение базового языка, которое позволяет запрашивать коллекции данных с использованием синтаксиса sql-like. Большим преимуществом является то, что он написан рядом с вашим кодом в среде Visual Studio, поэтому концепции доступа к данным sql были продвинуты до языковых конструкций первого уровня. Это означает, что вы получаете все преимущества intellisense и другие интересные преимущества работы в VS.
Так, как я уже сказал, Linq - это основная технология. Вы можете использовать это, чтобы запросить практически все. В простой форме ванили вы можете просто получить доступ к данным как массивы
DLinq - это то, что вызвал linq для sql, когда он был в разработке.
Linq to sql - это способ отображения вашей базы данных в контексте данных, а затем вы можете использовать linq для доступа к вашим таблицам в вашей базе данных и вносить изменения. Это довольно крутая технология, но, к сожалению, она устарела и сейчас "прекращена" Microsoft в пользу Entity Framework (Linq to Entities).
Когда я говорю о прекращении, что я имею в виду, это: они сказали, что после asp.net 4.0 они будут делать больше функций, но они намерены сосредоточить основное внимание на Entity Framework, и многие приложения Microsoft будут преобразованы в использование Entity Framework.
XLinq, как вы уже догадались, является способом запроса Xml файлов с Linq.
Вот учебник, представляющий его.