Linq lambda Select语句

时间:2013-06-25 09:30:20

标签: c# linq lambda

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

我现在拥有的:

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

但它不起作用。

4 个答案:

答案 0 :(得分:2)

这一行:

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"))

答案 1 :(得分:1)

你应该先让你的物品正确,所以试试其中一个:

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
} 

但是你必须确保你执行单一调用它在return语句中只有1行。

如果您不确定是否有任何行,可以添加.SingleOrDefault或.FirstOrDefault

答案 2 :(得分:1)

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

答案 3 :(得分:1)

Select将序列的每个元素投影到新表单中。所以它返回IEnumerable而不是字符串。