Как говорит Дарин, разницы нет. Лично я предпочел бы первый синтаксис, так как все, что у вас есть, это одиночное предложение where
в выражении запроса. Обратите внимание, что первый синтаксис более читабелен как:
var query = ChequeDocument.Descendants("ERRORS")
.Where(x=>(string)x.Attribute("D") == "")
.Count();
Также обратите внимание, что это демонстрирует особый случай выражений запросов. Второй синтаксис изначально переведен на:
var query = ChequeDocument.Descendants("ERRORS")
.Where(x=>(string)x.Attribute("D") == "")
.Select(x => x)
.Count();
но компилятор удаляет no-op Select(x => x)
. Это не делает это в случае, когда нет других предложений - поэтому from x in y select x
все еще становится y.Select(x => x)
.