如何使用LINQ返回字符串

时间:2012-08-21 13:54:16

标签: c# linq

我有一些执行查询的代码。

int credenciadaId = 10;
var nome = from c in db.SanCredenciadas
           where c.CredenciadaId == credenciadaId
           select c.Name;

我的问题分为两部分。

我希望查询只返回一个Name作为string。如何更改查询nome,以便以下代码有效?

string name = nome;

此外,我如何编写改进的查询,以便它使用lambda表达式和method syntax而不是当前的查询语法?

3 个答案:

答案 0 :(得分:6)

像这样

string name = nome.Single().Name;

如果你没有得到一个我怀疑你想要的结果,这将失败。

使用lambda的查询将是

var credenciadaId = 10;
var name = db.San_Credenciadas
    .Single(c => c.Credenciada_Id == credenciadaId).Name;

答案 1 :(得分:2)

var name = db.San_Credenciadas.First(c => c.Credenciada_Id == Credenciada_Id).Name

答案 2 :(得分:1)

值得注意的是,如果您要使用collection.Single()collection.Single(x => x.Onething == someValue),您的收藏必须有一个与之匹配的项目,否则它会抛出异常。

至于collection.First(),您只是想确保collection实际上有一些数据,因此您可以使用if (collection.Any())

通常,我会选择使用collection.SingleOrDefault()collection.FirstOrDefault(),然后检查从中返回的值是否为空。如果没有,那么你可以得到这个名字。如果 为null,则可以根据需要处理错误。