Linq lambda Select statement

本文关键字:statement Select lambda Linq | 更新日期: 2023-09-27 18:19:44

我是新手,我想选择:(SQL)从[tablename]中选择textfileURL;

我现在拥有的:

public string GetfileURL()
    {
         return context.wordpuzzles.Select(i => i.textfileURL).ToString();
    } 

但它不起作用。

Linq lambda Select statement

此行:

context.wordpuzzles.Select(i => i.textfileURL)

将返回一个IEnumerable。然后你试着把它变成字符串。我想你想把这个IEnumerable中的所有文本都分配给一个字符串吗?

那么Aggregate就派上用场了=)。

context.wordpuzzles.Select(i => i.textfileURL)
              .Aggregate(string.Empty, (current, c) => current + c + "'n");

将导致以下情况:

字符串1字符串2等

不确定这是否是你真正想要的。。。

如果你只想要一个,你可以使用FirstOrDefault。

示例:

context.wordpuzzles.FirstOrDefault(i => i.textfileURL.Contains("your criteria"))

您正在做几乎正确的事情,但如果您想选择一个结果,请使用FirstOrDefault()。否则你会得到IEnumerable<string>

Select将序列中的每个元素投影到一个新的形式中。因此它返回IEnumerable,而不仅仅是字符串。

您应该首先更正您的项目,因此请尝试以下操作之一:

public string GetfileURL()
{
     return context.wordpuzzles.Single(i => i.condition = "yourCriteria").textfileURL.ToString();
} 

public string GetfileURL()
{
     return context.wordpuzzles.First(i => i.condition  = "yourCriteria").textfileURL.ToString();
} 

public string GetfileURL()
{
     dim results = context.wordpuzzles.Where(i => i.condition  = "yourCriteria").ToList();
     'perform rest of code
} 

但是,如果执行Single调用,则必须确保它在return语句中只有1行。

如果您不确定是否有可以添加的行。SingleOrDefault或.FirstOrDefault