न तो बेहतर है: वे विभिन्न आवश्यकताओं की सेवा करते हैं। जब आप एक से अधिक श्रेणी चर का लाभ लेना चाहते हैं तो क्वेरी सिंटैक्स अपने आप आता है । यह तीन स्थितियों में होता है:
- लेट कीवर्ड का उपयोग करते समय
- आप (कई जनरेटर है जब से खंड)
- जब जॉइन कर रहे हो
यहाँ एक उदाहरण है (LINQPad नमूने से):
string[] fullNames = { "Anne Williams", "John Fred Smith", "Sue Green" };
var query =
from fullName in fullNames
from name in fullName.Split()
orderby fullName, name
select name + " came from " + fullName;
अब इसकी तुलना सिंटैक्स में उसी चीज़ से करें:
var query = fullNames
.SelectMany (fName => fName.Split().Select (name => new { name, fName } ))
.OrderBy (x => x.fName)
.ThenBy (x => x.name)
.Select (x => x.name + " came from " + x.fName);
दूसरी ओर विधि सिंटैक्स, क्वेरी ऑपरेटरों के पूर्ण सरगम को उजागर करता है और सरल प्रश्नों के साथ अधिक संक्षिप्त है। क्वेरी और विधि सिंटैक्स को मिला कर आप दोनों दुनिया का सर्वश्रेष्ठ प्राप्त कर सकते हैं। यह अक्सर LINQ में SQL प्रश्नों के लिए किया जाता है:
var query =
from c in db.Customers
let totalSpend = c.Purchases.Sum (p => p.Price) // Method syntax here
where totalSpend > 1000
from p in c.Purchases
select new { p.Description, totalSpend, c.Address.State };